home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-05 / man_9106.zip / KA9QNOS.TXT < prev   
Text File  |  1991-06-11  |  154KB  |  4,489 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.              NET User Reference Manual (NOS Version)
  11.  
  12.  
  13.                          Phil Karn, KA9Q
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20. 1.  The NET.EXE Program
  21.  
  22. The MS-DOS executable file net.exe  provides  Internet  (TCP/IP),
  23. NET/ROM  and AX.25 facilities.  Because it has an internal multi-
  24. tasking operating system, net.exe can  act  simultaneously  as  a
  25. client, a server and a packet switch for all three sets of proto-
  26. cols. That is, while a local user accesses remote  services,  the
  27. system can also provide those same services to remote users while
  28. also switching IP, NET/ROM and AX.25 packets and  frames  between
  29. other client and server nodes.
  30.  
  31. The keyboard and display is used by the local operator to control
  32. both host and gateway level functions, for which a number of com-
  33. mands are provided.
  34.  
  35. 1.1.  Installation
  36.  
  37. Net.exe uses the following directory structure:
  38.  
  39.         /spool
  40.         /spool/help
  41.         /spool/mail
  42.         /spool/mqueue
  43.         /spool/rqueue
  44.         /spool/news
  45.  
  46.  
  47. By default, the /spool directory is placed in the root  directory
  48. of  the  current  drive. However, a subdirectory may be specified
  49. with the -d command-line option described below. If  a  subdirec-
  50. tory  is  given,  the alias, autoexec.net, dialer, domain.txt and
  51. ftpusers configuration files must also be located there.
  52.  
  53. The "/spool" directory and its sub-directories are  used  by  the
  54. bbs,  SMTP  and  NNTP services.  The areas, forward.bbs, history,
  55. mail.log, rewrite and signatur configuration  files  are  located
  56. here.
  57.  
  58. 1.2.  net [-b] [-s <sockets>] [-d <directory>] [<startup file>]
  59.  
  60.  
  61.  
  62.  
  63.  
  64.                         June 7, 1991
  65.  
  66.  
  67.  
  68.  
  69.  
  70.                            - 2 -
  71.  
  72.  
  73. 1.2.1.  -b
  74.  
  75. The -b option specifies the use of BIOS for console  output;  the
  76. default  is  to  write  directly to the video display buffer. Use
  77. this option if you are running under a windowing package and have
  78. trouble with output "bleeding through" on top of other windows.
  79.  
  80. 1.2.2.  -s
  81.  
  82. The -s option specifies the size of the socket array to be  allo-
  83. cated  within  net.exe. This limits the number of network connec-
  84. tions that may exist simultaneously.  The default is 40.
  85.  
  86. 1.2.3.  -d
  87.  
  88. The -d option allows the user to specify a directory for the con-
  89. figuration  and spool files; it defaults to the root directory of
  90. the system.
  91.  
  92. 1.2.4.  Startup file
  93.  
  94. After all command-line options, the name of a startup file may be
  95. specified.   If no startup file is specified, net.exe attempts to
  96. open a file named autoexec.net in the configuration directory  of
  97. the  current  drive.  If the file exists, it is read and executed
  98. as though its contents were typed on  the  console  as  commands.
  99. (See  the Commands chapter.) This feature is useful for attaching
  100. communication  interfaces,  configuring  network  addresses,  and
  101. starting the various services.
  102.  
  103. 2.  Console modes
  104.  
  105. The console may be in one of two modes: command mode and converse
  106. mode.   In  command mode, the prompt net> is displayed and any of
  107. the commands described in the Commands chapter  may  be  entered.
  108. In  converse  mode,  keyboard input is processed according to the
  109. current session.
  110.  
  111. Sessions come in many types, including Telnet, FTP, AX25, NETROM,
  112. Ping,  More, Hopcheck and Tip.  In a Telnet, AX25, NETROM, or Tip
  113. session, keyboard input is sent to the remote system and any out-
  114. put from the remote system is displayed on the console.  In a FTP
  115. session, keyboard input is first examined to see if it is a known
  116. local  command;  if  so  it  is  executed locally.  If not, it is
  117. "passed through" to the remote FTP server.  (See the FTP  Subcom-
  118. mands  chapter).  In a Ping session the user may test the path to
  119. a remote site, and in a More session,  the  user  may  examine  a
  120. local file. A Hopcheck session is used to trace the path taken by
  121. packets to reach a specified destination. A Tip session  provides
  122. a "dumb terminal" service that bypasses all network protocols.
  123.  
  124. The keyboard also has cooked and raw states.   In  cooked  state,
  125. input  is line-at-a-time; the user may use the line editing char-
  126. acters ^U, ^R and backspace to erase the line, redisplay the line
  127.  
  128.  
  129.  
  130.                         June 7, 1991
  131.  
  132.  
  133.  
  134.  
  135.  
  136.                            - 3 -
  137.  
  138.  
  139. and  erase  the  last  character,  respectively.   Hitting either
  140. return or line feed passes the complete line up to  the  applica-
  141. tion.   In raw state, each character is immediately passed to the
  142. application as it is typed.
  143.  
  144. The keyboard is always in cooked state in command  mode.   It  is
  145. also  cooked in converse mode on an AX25, FTP or NET/ROM session.
  146. In a Telnet session it depends on  whether  the  remote  end  has
  147. issued  (and  the  local  end  has accepted) the Telnet WILL ECHO
  148. option (see the echo command).
  149.  
  150. On the IBM-PC, the user may escape back to command mode  by  hit-
  151. ting  the  F10  key.   On  other systems, the user must enter the
  152. escape character, which is by default control-]  (hex  1d,  ASCII
  153. GS).  (Note that this is distinct from the ASCII character of the
  154. same name).  The escape character can be changed (see the  escape
  155. command).
  156.  
  157. In the IBM PC version, each session (including the command  "ses-
  158. sion")  has  its  own screen.  When a new session is created, the
  159. command display is saved in memory and  the  screen  is  cleared.
  160. When  the  command  escape  key (usually F10) is hit, the current
  161. session screen is saved and the command screen is restored.  When
  162. a  session  is  resumed,  its  screen  is  restored exactly as it
  163. appeared when it was last current.
  164.  
  165. 3.  Commands
  166.  
  167. This chapter describes the commands recognized in  command  mode,
  168. or  within  a startup file such as autoexec.net.  These are given
  169. in the following notation:
  170.  
  171.         command
  172.         command literal_parameter
  173.         command subcommand <parameter>
  174.         command [<optional_parameter>]
  175.         command a | b
  176.  
  177.  
  178. Many commands  take  subcommands  or  parameters,  which  may  be
  179. optional  or  required.  In  general, if a required subcommand or
  180. parameter is omitted, an error message will summarize the  avail-
  181. able  subcommands or required parameters.  (Giving a '?' in place
  182. of the subcommand will also generate the message.  This is useful
  183. when  the  command  word  alone is a valid command.) If a command
  184. takes an optional value parameter, issuing  the  command  without
  185. the  parameter  generally displays the current value of the vari-
  186. able. (Exceptions to this rule are noted in the  individual  com-
  187. mand descriptions.)
  188.  
  189. Two or more parameters separated  by  vertical  bar(s)  denote  a
  190. choice  between  the  specified  values.  Optional parameters are
  191. shown enclosed in [brackets], and a parameter enclosed in  <angle
  192. brackets> should be replaced with an actual value or string.  For
  193.  
  194.  
  195.  
  196.                         June 7, 1991
  197.  
  198.  
  199.  
  200.  
  201.  
  202.                            - 4 -
  203.  
  204.  
  205. example, the notation <hostid> denotes an actual host or gateway,
  206. which  may  be  specified  in  one  of  two ways: as a numeric IP
  207. address in dotted decimal notation (eg. 44.0.0.1), or as  a  sym-
  208. bolic name listed in the file domain.txt.
  209.  
  210. All commands and many subcommands may be  abbreviated.  You  only
  211. need  type enough of a command's name to distinguish it from oth-
  212. ers that begin with the same series of letters. Parameters,  how-
  213. ever, must be typed in full.
  214.  
  215. Certain FTP subcommands (eg. put, get, dir, etc)  are  recognized
  216. only  in converse mode with the appropriate FTP session; they are
  217. not  recognized  in  command  mode.   (See  the  FTP  Subcommands
  218. chapter.)
  219.  
  220. Note that certain commands may have  been  configured  out  of  a
  221. given  copy of net.exe to save disk and memory.  If a command has
  222. been configured out, it will not appear in the list  produced  by
  223. the  "?" command, nor will it be recognized by the command inter-
  224. preter.
  225.  
  226. 3.1.  <CR>
  227.  
  228. Entering a carriage return (empty line)  while  in  command  mode
  229. puts  you  in converse mode with the current session. If there is
  230. no current session, net.exe remains in command mode.
  231.  
  232. 3.2.  !
  233.  
  234. An alias for the shell command.
  235.  
  236. 3.3.  #
  237.  
  238. Commands starting with the hash mark (#)  are  ignored.  This  is
  239. mainly useful for comments in the autoexec.net file.
  240.  
  241. 3.4.  abort [<session #>]
  242.  
  243. Abort a FTP get, put or dir  operation  in  progress.  If  issued
  244. without  an  argument, the current session is aborted. (This com-
  245. mand works only on FTP sessions.) When receiving  a  file,  abort
  246. simply  resets the data connection; the next incoming data packet
  247. will generate a TCP RST (reset)  response  to  clear  the  remote
  248. server.   When  sending  a  file, abort sends a premature end-of-
  249. file. Note that in both cases abort will leave a partial copy  of
  250. the  file on the destination machine, which must be removed manu-
  251. ally if it is unwanted.
  252.  
  253. 3.5.  arp
  254.  
  255. Display the  Address  Resolution  Protocol  table  that  maps  IP
  256. addresses to their subnet (link) addresses on subnetworks capable
  257. of broadcasting.  For each IP address entry the subnet type  (eg.
  258. Ethernet, AX.25), subnet address and time to expiration is shown.
  259.  
  260.  
  261.  
  262.                         June 7, 1991
  263.  
  264.  
  265.  
  266.  
  267.  
  268.                            - 5 -
  269.  
  270.  
  271. If the link address  is  currently  unknown,  the  number  of  IP
  272. datagrams awaiting resolution is also shown.
  273.  
  274. 3.5.1.  arp add <hostid> ethernet |  ax25  <ethernet  address>  |
  275. <ax25_address>
  276.  
  277. Add a permanent entry to the table. It will not time out as  will
  278. an  automatically-created entry, but must be removed with the arp
  279. drop command.
  280.  
  281. 3.5.2.  arp publish <hostid> ethernet | ax25 <ethernet address> |
  282. <ax25_address>
  283.  
  284. This command is similar to the arp add command, but  system  will
  285. also respond to any ARP request it sees on the network that seeks
  286. the specified address.  Use this feature with great care.
  287.  
  288. 3.5.3.  arp drop <hostid> ax25 | ethernet
  289.  
  290. Remove the specified entry from the ARP table.
  291.  
  292. 3.5.4.  arp flush
  293.  
  294. Drop all automatically-created entries in  the  ARP  table.  Per-
  295. manent entries are not affected.
  296.  
  297. 3.6.  asystat
  298.  
  299. Display statistics on attached asynchronous communications inter-
  300. faces  (8250  or  16550A), if any. The display for each port con-
  301. sists of three lines. The first line gives the port label and the
  302. configuration  flags; these indicate whether the port is a 16550A
  303. chip, the trigger character if any, whether CTS flow  control  is
  304. enabled,  whether  RLSD (carrier detect) line control is enabled,
  305. and the speed in bits per second.  (Receiving the trigger charac-
  306. ter causes the driver to signal upper layer software that data is
  307. ready; it is automatically set to the appropriate frame end char-
  308. acter for SLIP, PPP and NRS lines.)
  309.  
  310. The second line of the status display shows receiver  (RX)  event
  311. counts:  the total number of receive interrupts, received charac-
  312. ters, receiver overruns (lost characters) and the  receiver  high
  313. water mark.  The high water mark is the maximum number of charac-
  314. ters ever read from the device during a single interrupt. This is
  315. useful  for  monitoring  system  interrupt  latency margins as it
  316. shows how close the port hardware has come to overflowing due  to
  317. the  inability  of  the CPU to respond to a receiver interrupt in
  318. time. 8250 chips have no FIFO, so the high water mark  cannot  go
  319. higher  than  2  before overruns occur. The 16550A chip, however,
  320. has a 16-byte receive FIFO which the software programs to  inter-
  321. rupt  the  CPU when the FIFO is one-quarter full.  The high water
  322. mark should typically be 4 or 5 when a  16550A  is  used;  higher
  323. values  indicate  that  the  CPU  has  at least once been slow to
  324. respond to a receiver interrupt.
  325.  
  326.  
  327.  
  328.                         June 7, 1991
  329.  
  330.  
  331.  
  332.  
  333.  
  334.                            - 6 -
  335.  
  336.  
  337. When the 16550A is  used,  a  count  of  FIFO  timeouts  is  also
  338. displayed  on  the  RX status line. These are generated automati-
  339. cally by the 16550A when three character  intervals  go  by  with
  340. more  than  0  but  less than 4 characters in the FIFO. Since the
  341. characters that make up a SLIP or NRS frame are normally sent  at
  342. full  line speed, this count will usually be a lower bound on the
  343. number of frames received on the port, as only the last  fragment
  344. of a frame generally results in a timeout (and then only when the
  345. frame is not a multiple of 4 bytes long.)
  346.  
  347. Finally, the software fifo  overruns  and  high  water  mark  are
  348. displayed.  These indicate whether the <bufsize> parameter on the
  349. attach command needs to be  adjusted  (see  the  Attach  Commands
  350. chapter).
  351.  
  352. The third line shows transmit (TX) statistics, including a  total
  353. count  of transmit interrupts, transmitted characters, the length
  354. of the transmit queue in bytes, the number of status  interrupts,
  355. and the number of THRE timeouts.  The status interrupt count will
  356. be zero unless CTS flow control or RLSD  line  control  has  been
  357. enabled.   The  THRE  timeout  is a stopgap measure to catch lost
  358. transmit interrupts, which seem to happen when there is a lot  of
  359. activity (ideally, this will be zero).
  360.  
  361. 3.7.  attach <hw type> ...
  362.  
  363. Configure  and  attach  a  hardware  interface  to  the   system.
  364. Detailed  instructions for each driver are in the Attach Commands
  365. chapter.  An easy way to  obtain  a  summary  of  the  parameters
  366. required  for a given device is to issue a partial attach command
  367. (eg. attach packet).  This produces a usage  message  giving  the
  368. complete command format.
  369.  
  370. 3.8.  ax25 ...
  371.  
  372. These commands are used to control the AX.25 amateur  radio  link
  373. level protocol.
  374.  
  375. 3.8.1.  ax25 blimit [<count>]
  376.  
  377. Display or set the AX25 retransmission  backoff  limit.  Normally
  378. each successive AX25 retransmission is delayed by twice the value
  379. of the previous interval; this is called binary exponential back-
  380. off.   When  the backoff reaches the blimit setting it is held at
  381. that value, which defaults to 30.  To prevent the possibility  of
  382. "congestive  collapse"  on a loaded channel, blimit should be set
  383. at least as high as the number of stations sharing  the  channel.
  384. Note  that this is applicable only on actual AX25 connections; UI
  385. frames will never be retransmitted by the AX25 layer.
  386.  
  387. 3.8.2.  ax25 dest
  388.  
  389. Display the AX25 destination monitoring database.  Each  callsign
  390. seen in the destination field of an AX25 frame is displayed (most
  391.  
  392.  
  393.  
  394.                         June 7, 1991
  395.  
  396.  
  397.  
  398.  
  399.  
  400.                            - 7 -
  401.  
  402.  
  403. recent first), along with the time since it was last  referenced.
  404. The  time  since  the  same  callsign was last seen in the source
  405. field of an AX25 frame on the same interface is  also  shown.  If
  406. the  callsign has never been seen in the source field of a frame,
  407. then this field is left blank. (This indicates that the  destina-
  408. tion is either a multicast address or a "hidden station".)
  409.  
  410. 3.8.3.  ax25 digipeat [on | off]
  411.  
  412. Display or set the digipeater enable flag.
  413.  
  414. 3.8.4.  ax25 flush
  415.  
  416. Clear the AX.25 "heard" list (see ax25 heard).
  417.  
  418. 3.8.5.  ax25 heard
  419.  
  420. Display the AX.25 "heard" list. For each interface that  is  con-
  421. figured  to use AX.25, a list of all callsigns heard through that
  422. interface is shown, along with a count of the number  of  packets
  423. heard  from  each station and the interval, in hr:min:sec format,
  424. since each station was last heard.  The list is sorted  in  most-
  425. recently-heard order.  The local station is included in the list-
  426. ing; the packet count reflects the number of packets transmitted.
  427. This  count will be correct whether or not the modem monitors its
  428. own transmissions.
  429.  
  430. 3.8.6.  ax25 irtt [<milliseconds>]
  431.  
  432. Display or set the initial value of smoothed round trip  time  to
  433. be  used  when  a new AX25 connection is created. The value is in
  434. milliseconds.  The actual round trip  time  will  be  learned  by
  435. measurement once the connection has been established.
  436.  
  437. 3.8.7.  ax25 kick <axcb>
  438.  
  439. Force a retransmission on the specified AX.25 control block.
  440.  
  441. 3.8.8.  ax25 maxframe [<count>]
  442.  
  443. Establish the maximum number of frames that will  be  allowed  to
  444. remain  unacknowledged at one time on new AX.25 connections. This
  445. number cannot be greater than 7.
  446.  
  447. 3.8.9.  ax25 mycall [<call>]
  448.  
  449. Display or set the local AX.25 address.  The standard  format  is
  450. used (eg. KA9Q-0 or WB6RQN-5).  This command must be given before
  451. any attach commands using AX.25 mode are given.
  452.  
  453. 3.8.10.  ax25 paclen [<size>]
  454.  
  455. Limit the size of I-fields  on  new  AX.25  connections.   If  IP
  456. datagrams  or  fragments  larger  than this are transmitted, they
  457.  
  458.  
  459.  
  460.                         June 7, 1991
  461.  
  462.  
  463.  
  464.  
  465.  
  466.                            - 8 -
  467.  
  468.  
  469. will be transparently fragmented at the AX.25 level,  sent  as  a
  470. series  of  I  frames,  and  reassembled  back into a complete IP
  471. datagram or fragment at the other end of the link.  To  have  any
  472. effect  on  IP  datagrams,  this parameter should be less than or
  473. equal to the MTU of the associated interface.
  474.  
  475. 3.8.11.  ax25 pthresh [<size>]
  476.  
  477. Display or set the poll threshold to be used for new  AX.25  Ver-
  478. sion  2  connections.  The poll threshold controls retransmission
  479. behavior as follows. If the oldest unacknowledged I-frame size is
  480. less  than  the poll threshold, it will be sent with the poll (P)
  481. bit set if a timeout occurs.  If the oldest unacked I-frame  size
  482. is  equal  to  or  greater  than  the threshold, then a RR or RNR
  483. frame, as appropriate, with the poll bit set will be  sent  if  a
  484. timeout occurs.
  485.  
  486. The idea behind the poll threshold is that the extra time  needed
  487. to  send  a  "small"  I-frame instead of a supervisory frame when
  488. polling after a timeout is small, and since there's a good chance
  489. the  I-frame  will  have to be sent anyway (i.e., if it were lost
  490. previously) then you might as well send it as the  poll.  But  if
  491. the I-frame is large, send a supervisory (RR/RNR) poll instead to
  492. determine first if retransmitting the  oldest  unacknowledged  I-
  493. frame  is necessary; the timeout might have been caused by a lost
  494. acknowledgement.  This is obviously  a  tradeoff,  so  experiment
  495. with  the  poll  threshold setting. The default is 128 bytes, one
  496. half the default value of paclen.
  497.  
  498. 3.8.12.  ax25 reset <axcb>
  499.  
  500. Delete the  AX.25  connection  control  block  at  the  specified
  501. address.
  502.  
  503. 3.8.13.  ax25 retry [<count>]
  504.  
  505. Limit  the  number  of  successive  unsuccessful   retransmission
  506. attempts  on  new  AX.25  connections. If this limit is exceeded,
  507. link re-establishment is attempted. If this  fails  retry  times,
  508. then  the connection is abandoned and all queued data is deleted.
  509. A value of 0 means  "infinity";  the  retry  limit  is  disabled.
  510. retry
  511.  
  512. 3.8.14.  ax25 route
  513.  
  514. Display the AX.25 routing table that specifies the digipeaters to
  515. be used in reaching a given station.
  516.  
  517. 3.8.14.1.  ax25 route add <target> [digis ... ]
  518.  
  519. Add an entry to the AX.25 routing table.  An automatic ax25 route
  520. add  is  executed if digipeaters are specified in an AX25 connect
  521. command, or if a connection is received from a remote station via
  522. digipeaters.  Such automatic routing table entries won't override
  523.  
  524.  
  525.  
  526.                         June 7, 1991
  527.  
  528.  
  529.  
  530.  
  531.  
  532.                            - 9 -
  533.  
  534.  
  535. locally created entries, however.
  536.  
  537. 3.8.14.2.  ax25 route drop <target>
  538.  
  539. Drop an entry from the AX.25 routing table.
  540.  
  541. 3.8.15.  ax25 status [<axcb>]
  542.  
  543. Without an argument, display a one-line  summary  of  each  AX.25
  544. control  block.   If the address of a particular control block is
  545. specified, the contents of that control block are dumped in  more
  546. detail.  Note  that  the  send  queue units are frames, while the
  547. receive queue units are bytes.
  548.  
  549. 3.8.16.  ax25 t3 [<milliseconds>]
  550.  
  551. Display or set the AX.25 idle "keep alive"  timer.  Value  is  in
  552. milliseconds.
  553.  
  554. 3.8.17.  ax25 version [1 | 2]
  555.  
  556. Display or set the version of the AX.25 protocol  to  attempt  to
  557. use  on  new connections. The default is 1 (the version that does
  558. not use the poll/final bits).
  559.  
  560. 3.8.18.  ax25 window [<size>]
  561.  
  562. Set the number of bytes that can be pending on an  AX.25  receive
  563. queue  beyond  which I frames will be answered with RNR (Receiver
  564. Not Ready) responses.  This presently applies only  to  suspended
  565. interactive  AX.25  sessions,  since incoming I-frames containing
  566. network (IP, NET/ROM) packets are  always  processed  immediately
  567. and  are not placed on the receive queue.  However, when an AX.25
  568. connection carries both interactive and network  packet  traffic,
  569. an  RNR  generated because of backlogged interactive traffic will
  570. also stop network packet traffic from being sent.
  571.  
  572. 3.9.  BOOTP
  573.  
  574. The bootp  client  and  server  are  added  to  KA9Q  to  provide
  575. automatic  configuration capabilities.  With this suite of exten-
  576. sions, a KA9Q host can automatically configure  its  IP  address,
  577. subnet  mask,  broadcast address, host name, the default gateway,
  578. the name servers, and default boot file.   This  simplifies  host
  579. configuration.
  580.  
  581. The bootp server supports dynamic IP address  assignment.   If  a
  582. bootp  request  is  made  by a host to the server, and the server
  583. doesn't have a static record for the PC making the request, an IP
  584. address  may  be assigned from a list of dynamic addresses.  This
  585. simplifies server configuration, so that machines  don't  require
  586. prior IP address assignment.  This is useful in environments such
  587. as university dormitories, where network service is provided, and
  588. the  computers configurations change frequently.  When the server
  589.  
  590.  
  591.  
  592.                         June 7, 1991
  593.  
  594.  
  595.  
  596.  
  597.  
  598.                            - 10 -
  599.  
  600.  
  601. list of free addresses reaches a minimum threshold, it will begin
  602. attempts to reclaim the address.
  603.  
  604. The bootp client and server code are written according to RFC 951
  605. and 1048.
  606.  
  607. 3.9.1.  bootp  [<net_name>] [silent] [noisy]
  608.  
  609. Send a request to a bootp server,  and  wait  for  a  reply.   On
  610. receipt of the server reply, the information is used to configure
  611. the host.  If a reply is not received, the command will time out.
  612. Without  arguments,  bootp sends a request to the first interface
  613. in the interface list.
  614.  
  615. This command requires that there exist a routing entry for the IP
  616. broadcast  address  255.255.255.255  pointing  to the appropriate
  617. interface. If the interface uses ARP, there must also be  an  ARP
  618. entry that maps that address to the appropriate link level broad-
  619. cast address.  For example, if you  have  an  Ethernet  interface
  620. named  "ethernet",  use  the  following commands before the bootp
  621. command:
  622.  
  623.      route add 255.255.255.255 ethernet
  624.  
  625.      arp add 255.255.255.255 ether ff:ff:ff:ff:ff:ff
  626.  
  627. The following bootp subcommands are available:
  628.  
  629. 3.9.1.1.  bootp <net_name>
  630.  
  631. Send a request over the specified network.
  632.  
  633. 3.9.1.2.  bootp silent
  634.  
  635. Set bootp so that it will not print the configuration.
  636.  
  637. 3.9.1.3.  bootp noisy
  638.  
  639. Set bootp so that it will print the configuration.
  640.  
  641. 3.9.2.  bootpd ...
  642.  
  643. This command starts and stops the bootp server, and sets the con-
  644. figuration  for  the  information it will provide in replies.  If
  645. the file bootptab exists, it will read the file for configuration
  646. information.   On  receipt  of  a  request,  if bootptab has been
  647. changed, the server will reread the file for the  changed  confi-
  648. guration.  The following subcommands are available:
  649.  
  650. 3.9.2.1.  bootpd start
  651.  
  652. Start the bootp server, reading from the file bootptab for confi-
  653. guration information.
  654.  
  655.  
  656.  
  657.  
  658.                         June 7, 1991
  659.  
  660.  
  661.  
  662.  
  663.  
  664.                            - 11 -
  665.  
  666.  
  667. 3.9.2.2.  bootpd stop
  668.  
  669. Stop the bootp server.
  670.  
  671. 3.9.2.3.  bootpd dns
  672.  
  673. Print the address of the domain name servers supplied in replies.
  674.  
  675. 3.9.2.4.  bootpd dns <IP addr of domain name server>...
  676.  
  677. Set the addresses.
  678.  
  679. 3.9.2.5.  bootpd dynip
  680.  
  681. Print the range and use of the dynamic IP address.
  682.  
  683. 3.9.2.6.  bootpd dynip <net_name> <IP address> <IP address>
  684.  
  685. Set the range of IP address  to  be  used  for  network  netname.
  686. These address will be supplied to hosts that are not found in the
  687. static record.
  688.  
  689. 3.9.2.7.  bootpd dynip <netname> off
  690.  
  691. Turn off dynamic ip for network interface netname.
  692.  
  693. 3.9.2.8.  bootpd host
  694.  
  695. Print the information in the static host table.
  696.  
  697. 3.9.2.9.   bootpd  host   <hostname>    ethernet|ax25   <ethernet
  698. addr>|<ax25 addr> <ip addr> [boot file]
  699.  
  700. Add a host to the host table.  The LANSTAR packet drivers provide
  701. an Ethernet interface to upper layer applications, so configure a
  702. LANSTAR network as an Ethernet.
  703.  
  704. 3.9.2.10.  bootpd rmhost <hostname>
  705.  
  706. Remove host <hostname> from the static host tables.
  707.  
  708. 3.9.2.11.  bootpd homedir
  709.  
  710. Print the default directory for the bootp file name used when the
  711. bootp  file  is not specified in the static host record, and when
  712. dynamic addresses are supplied.  Default is the null string.
  713.  
  714. 3.9.2.12.  bootpd homedir <directory name>
  715.  
  716. Set the default directory.
  717.  
  718. 3.9.2.13.  bootpd defaultfile
  719.  
  720. Print the default file for the bootp  file  name  used  when  the
  721.  
  722.  
  723.  
  724.                         June 7, 1991
  725.  
  726.  
  727.  
  728.  
  729.  
  730.                            - 12 -
  731.  
  732.  
  733. bootp  file  is not specified in the static host record, and when
  734. dynamic addresses are supplied.  Default is the null string.
  735.  
  736. 3.9.2.14.  bootpd defaultfile <filename>
  737.  
  738. Set the default file.
  739.  
  740. 3.9.2.15.  bootpd logfile
  741.  
  742. Print the status of logging to a log file.
  743.  
  744. 3.9.2.16.  bootpd logfile <filename | default> on|off
  745.  
  746. Sets the file for logging to <filename> or the default, bootplog.
  747. Turn logging to that file on or off.
  748.  
  749. 3.9.2.17.  bootpd logscreen
  750.  
  751. Print the status of logging to the screen.
  752.  
  753. 3.9.2.18.  bootpd logscreen on|off
  754.  
  755. Turn logging to the screen on or off.
  756.  
  757. 3.10.  cd [<dirname>]
  758.  
  759. Change the current working directory, and display  the  new  set-
  760. ting.  Without an argument, cd simply displays the current direc-
  761. tory without change.  The pwd command is an alias for cd.
  762.  
  763. 3.11.  close [<session>]
  764.  
  765. Close the specified  session;  without  an  argument,  close  the
  766. current  session.   On an AX.25 session, this command initiates a
  767. disconnect.  On a FTP or Telnet session, this command sends a FIN
  768. (i.e.,  initiates a close) on the session's TCP connection.  This
  769. is an alternative to asking the remote server to initiate a close
  770. (QUIT  to  FTP,  or the logout command appropriate for the remote
  771. system in the case of Telnet).  When either FTP  or  Telnet  sees
  772. the  incoming  half  of  a TCP connection close, it automatically
  773. responds by closing the outgoing half of the  connection.   Close
  774. is  more  graceful  than  the  reset  command, in that it is less
  775. likely to leave the remote TCP in a "half-open" state.
  776.  
  777. 3.12.  connect <iface> <callsign> [<digipeater> ... ]
  778.  
  779. Initiate a "vanilla" AX.25 session to  the  specified  call  sign
  780. using the specified interface. Data sent on this session goes out
  781. in conventional AX.25 packets with no upper layer protocol.   The
  782. de-facto  presentation  standard  format  is  used,  in that each
  783. packet holds one line of text, terminated by a  carriage  return.
  784. A  single  AX.25 connection may be used for terminal-to-terminal,
  785. IP and NET/ROM traffic.  The three types of  data  are  automati-
  786. cally separated by their AX.25 Level 3 Protocol IDs.
  787.  
  788.  
  789.  
  790.                         June 7, 1991
  791.  
  792.  
  793.  
  794.  
  795.  
  796.                            - 13 -
  797.  
  798.  
  799. Up to 7 optional digipeaters may be given; note that the word via
  800. is  NOT  needed. If digipeaters are specified, they are automati-
  801. cally added to the AX25 routing table as though  the  ax25  route
  802. add command had been given before issuing the connect command.
  803.  
  804. 3.13.  delete <filename>
  805.  
  806. Delete a filename in the current working directory.
  807.  
  808. 3.14.  detach <iface>
  809.  
  810. Detach a previously attached interface from the  system.  All  IP
  811. routing  table  entries  referring to this interface are deleted,
  812. and forwarding references by any other interface to  this  inter-
  813. face are removed.
  814.  
  815. 3.15.  dialer <iface> [<dialer-file> [<seconds>  [<tests>  [<hos-
  816. tid>]]]]
  817.  
  818. Setup an autodialer session  for  the  interface.   Whenever  the
  819. interface  is  idle for the interval in <seconds>, the autodialer
  820. will ping the <hostid>.  If there  is  no  answer  after  <tests>
  821. attempts,  or  the  interface  is otherwise known to be down, the
  822. autodialer will execute the special  commands  contained  in  the
  823. <dialer-file>.
  824.  
  825. The <dialer-file> may have any valid name, and must be located in
  826. the  configuration  directory  (see the Installion section).  The
  827. commands in the file are  described  in  the  Dialer  Subcommands
  828. chapter.
  829.  
  830. If the <dialer-file> is missing, any previous dialer command pro-
  831. cess will be removed.  If <seconds> is missing, the <dialer-file>
  832. will be executed  immediately  without  any  further  tests.   If
  833. <tests> is missing, the default is 2.  If <hostid> is missing and
  834. the interface uses the PPP encapsulation, the PPP LCP  echo  will
  835. be used instead.
  836.  
  837. 3.16.  dir [<dirname>]
  838.  
  839. List the contents of the specified directory on the  console.  If
  840. no  argument is given, the current directory is listed. Note that
  841. this command works by first listing the  directory  into  a  tem-
  842. porary  file,  and  then  creating  a more session to display it.
  843. After this completes, the temporary file is deleted.
  844.  
  845. 3.17.  disconnect [<session #>]
  846.  
  847. An alias for the close command (for the benefit of AX.25 users).
  848.  
  849. 3.18.  domain ...
  850.  
  851. These commands control the operation of the Internet Domain  Name
  852. Service (DNS).
  853.  
  854.  
  855.  
  856.                         June 7, 1991
  857.  
  858.  
  859.  
  860.  
  861.  
  862.                            - 14 -
  863.  
  864.  
  865. 3.18.1.  domain addserver <hostid>
  866.  
  867. Add one or more  domain  name  server(s)  to  the  list  of  name
  868. servers.
  869.  
  870. 3.18.2.  domain dropserver <hostid>
  871.  
  872. Remove one or more domain name server(s) from the  list  of  name
  873. servers.
  874.  
  875. 3.18.3.  domain listservers
  876.  
  877. List the currently configured domain  name  servers,  along  with
  878. statistics  on  how  many queries and replies have been exchanged
  879. with each one, response times, etc.
  880.  
  881. 3.18.4.  domain query <hostid>
  882.  
  883. Send a query to a domain server asking for all  resource  records
  884. associated with this <hostid>, and list the records.
  885.  
  886. 3.18.5.  domain retry [<count>]
  887.  
  888. Display or set the number of attempts to reach each server on the
  889. list during one call to the resolver.  If this count is exceeded,
  890. a failure indication is returned.  If set to  0,  the  list  will
  891. cycle  forever; this may be useful for unattended operation.  The
  892. default is 3.
  893.  
  894. 3.18.6.  domain suffix [<domain suffix>]
  895.  
  896. Display or specify the default domain name suffix to be  appended
  897. to  a  host name when it contains no periods. For example, if the
  898. suffix is set to ampr.org and the user enters  telnet  ka9q,  the
  899. domain  resolver  will attempt to find ka9q.ampr.org. If the host
  900. name being sought contains one  or  more  periods,  however,  the
  901. default  suffix  is  NOT applied (eg. telnet foo.bar would NOT be
  902. turned into foo.bar.ampr.org).
  903.  
  904. 3.18.7.  domain trace [on | off]
  905.  
  906. Display or set the flag controlling the tracing of domain  server
  907. requests  and  responses.  Trace  messages will be seen only if a
  908. domain name being sought is not found in the  local  cache  file,
  909. domain.txt.
  910.  
  911. 3.18.8.  domain cache ...
  912.  
  913. These commands are used for the use of the resource  record  file
  914. domain.txt, and the local memory cache.
  915.  
  916. 3.18.8.1.  domain cache clean [on | off]
  917.  
  918. Display or set the  flag  controlling  the  removal  of  resource
  919.  
  920.  
  921.  
  922.                         June 7, 1991
  923.  
  924.  
  925.  
  926.  
  927.  
  928.                            - 15 -
  929.  
  930.  
  931. records  from  the domain.txt file whose time-to-live has reached
  932. zero.
  933.  
  934. When  clean  is  off  (the  default),  expired  records  will  be
  935. retained;  if  no replacement can be obtained from another domain
  936. name server, these records will continue to be used.
  937.  
  938. When clean is on, expired records will be removed from  the  file
  939. whenever any new record is added to the file.
  940.  
  941. 3.18.8.2.  domain cache list
  942.  
  943. List the current contents of the local memory cache.
  944.  
  945. 3.18.8.3.  domain cache size [<count>]
  946.  
  947. Display or set the nominal  maximum  size  of  the  local  memory
  948. cache.  The default is 20.
  949.  
  950. (Note: The cache may be temporarily larger when waiting  for  new
  951. records to be written to the domain.txt file.)
  952.  
  953. 3.18.8.4.  domain cache wait [<seconds>]
  954.  
  955. Display or set the interval in seconds  to  wait  for  additional
  956. activity before updating the domain.txt file.  The default is 300
  957. seconds (5 minutes).
  958.  
  959. 3.19.  echo [accept | refuse]
  960.  
  961. Display or set the flag controlling client Telnet's response to a
  962. remote WILL ECHO offer.
  963.  
  964. The Telnet presentation protocol specifies that in the absence of
  965. a  negotiated  agreement to the contrary, neither end echoes data
  966. received from the other.  In this mode, a Telnet  client  session
  967. echoes  keyboard input locally and nothing is actually sent until
  968. a carriage return is typed. Local line editing is also performed:
  969. backspace  deletes  the  last  character  typed,  while control-U
  970. deletes the entire line.
  971.  
  972. When communicating from keyboard to keyboard the  standard  local
  973. echo  mode  is  used,  so  the  setting  of this parameter has no
  974. effect. However, many timesharing systems (eg. UNIX) prefer to do
  975. their  own  echoing  of  typed input.  (This makes screen editors
  976. work right, among other things). Such systems send a Telnet  WILL
  977. ECHO  offer immediately upon receiving an incoming Telnet connec-
  978. tion request. If echo accept is in effect, a client  Telnet  ses-
  979. sion  will automatically return a DO ECHO response. In this mode,
  980. local echoing and editing is turned off and each  key  stroke  is
  981. sent immediately (subject to the congestion control algorithms in
  982. TCP).  While this mode is just fine across  an  Ethernet,  it  is
  983. clearly  inefficient  and  painful  across slow paths like packet
  984. radio channels. Specifying echo refuse causes  an  incoming  WILL
  985.  
  986.  
  987.  
  988.                         June 7, 1991
  989.  
  990.  
  991.  
  992.  
  993.  
  994.                            - 16 -
  995.  
  996.  
  997. ECHO  offer  to  be  answered with a DONT ECHO; the client Telnet
  998. session remains in the local echo mode.  Sessions already in  the
  999. remote  echo  mode are unaffected. (Note: Berkeley Unix has a bug
  1000. in that it will still  echo  input  even  after  the  client  has
  1001. refused  the  WILL  ECHO offer. To get around this problem, enter
  1002. the stty -echo command to the shell once you have logged in.)
  1003.  
  1004. 3.20.  eol [unix | standard]
  1005.  
  1006. Display or set Telnet's end-of-line behavior when in remote  echo
  1007. mode.   In  standard  mode, each key is sent as-is. In unix mode,
  1008. carriage returns are translated to line feeds.  This  command  is
  1009. not  necessary  with  all UNIX systems; use it only when you find
  1010. that a particular system responds to line feeds but not  carriage
  1011. returns.   Only SunOS release 3.2 seems to exhibit this behavior;
  1012. later releases are fixed.
  1013.  
  1014. 3.21.  escape [<char>]
  1015.  
  1016. Display or set the current command-mode escape character in  hex.
  1017. (This  command  is  not  provided  on  the IBM-PC; on the PC, the
  1018. escape char is always F10.)
  1019.  
  1020. 3.22.  etherstat
  1021.  
  1022. Display 3-Com Ethernet controller statistics (if configured).
  1023.  
  1024. 3.23.  exit
  1025.  
  1026. Exit the net.exe program and return to MS-DOS.
  1027.  
  1028. 3.24.  finger <user@hostid> [<user@hostid> ...]
  1029.  
  1030. Issue a network finger request for user user at host hostid. This
  1031. creates  a  client  session  which  may  be interrupted, resumed,
  1032. reset, etc, just like a Telnet client session.
  1033.  
  1034. 3.25.  ftp <hostid>
  1035.  
  1036. Open an FTP control channel to  the  specified  remote  host  and
  1037. enter  converse  mode  on  the  new  session.  Responses from the
  1038. remote server are displayed directly on the screen. See  the  FTP
  1039. Subcommands chapter for descriptions of the commands available in
  1040. a FTP session.
  1041.  
  1042. 3.26.  help
  1043.  
  1044. Display a brief summary of top-level commands.
  1045.  
  1046. 3.27.  hop ...
  1047.  
  1048. These commands are used to test the connectivity of the network.
  1049.  
  1050.  
  1051.  
  1052.  
  1053.  
  1054.                         June 7, 1991
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.                            - 17 -
  1061.  
  1062.  
  1063. 3.27.1.  hop check <hostid>
  1064.  
  1065. Initiate a hopcheck session to the specified host.  This  uses  a
  1066. series  of  UDP  "probe" packets with increasing IP TTL fields to
  1067. determine the sequence of gateways in the path to  the  specified
  1068. destination. This function is patterned after the UNIX traceroute
  1069. facility.
  1070.  
  1071. ICMP message tracing should be turned off before this command  is
  1072. executed (see the icmp trace command).
  1073.  
  1074. 3.27.2.  hop maxttl [<hops>]
  1075.  
  1076. Display or set the maximum TTL value to be used in hop check ses-
  1077. sions.  This effectively bounds the radius of the search.
  1078.  
  1079. 3.27.3.  hop maxwait [<seconds>]
  1080.  
  1081. Display or set the maximum interval that a hopcheck session  will
  1082. wait  for  responses at each stage of the trace. The default is 5
  1083. seconds.
  1084.  
  1085. 3.27.4.  hop queries [<count>]
  1086.  
  1087. Display or set the number of UDP probes that will be sent at each
  1088. stage of the trace. The default is 3.
  1089.  
  1090. 3.27.5.  hop trace [on | off]
  1091.  
  1092. Display or set the flag that controls the display  of  additional
  1093. information during a hop check session.
  1094.  
  1095. 3.28.  hostname [<name>]
  1096.  
  1097. Display or set the local host's name. By convention  this  should
  1098. be  the  same  as  the host's primary domain name. This string is
  1099. used only  in  the  greeting  messages  of  the  various  network
  1100. servers; note that it does NOT set the system's IP address.
  1101.  
  1102. If <name> is the same as an  <iface>  (see  the  Attach  commands
  1103. chapter),  this  command  will search for a CNAME domain resource
  1104. record which corresponds to the IP address of the <iface>.
  1105.  
  1106. 3.29.  hs
  1107.  
  1108. Display statistics about the HS high speed HDLC driver  (if  con-
  1109. figured and active).
  1110.  
  1111. 3.30.  icmp ...
  1112.  
  1113. These commands are used for the Internet Control Message Protocol
  1114. service.
  1115.  
  1116.  
  1117.  
  1118.  
  1119.  
  1120.                         June 7, 1991
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126.                            - 18 -
  1127.  
  1128.  
  1129. 3.30.1.  icmp echo [on | off]
  1130.  
  1131. Display or set the flag controlling the asynchronous  display  of
  1132. ICMP Echo Reply packets.  This flag must be on for one-shot pings
  1133. to work (see the ping command.)
  1134.  
  1135. 3.30.2.  icmp status
  1136.  
  1137. Display statistics about the Internet  Control  Message  Protocol
  1138. (ICMP),  including  the number of ICMP messages of each type sent
  1139. or received.
  1140.  
  1141. 3.30.3.  icmp trace [on | off]
  1142.  
  1143. Display or set the flag controlling the  display  of  ICMP  error
  1144. messages.  These informational messages are generated by Internet
  1145. routers in response to routing, protocol or congestion  problems.
  1146. This  option  should  be  turned  off  before using the hop check
  1147. facility because it relies on ICMP Time  Exceeded  messages,  and
  1148. the  asynchronous  display of these messages will be mingled with
  1149. hop check command output.
  1150.  
  1151. 3.31.  ifconfig
  1152.  
  1153. Display a list of interfaces, with a short status for each.
  1154.  
  1155. 3.31.1.  ifconfig <iface>
  1156.  
  1157. Display an extended status of the interface.
  1158.  
  1159. 3.31.2.  ifconfig <iface> broadcast <address>
  1160.  
  1161. Set the broadcast address for the interface.  The <address> takes
  1162. the  form  of  an  IP  address  with  1's in the host part of the
  1163. address.  This is related to the netmask sub-command.   See  also
  1164. the arp command.
  1165.  
  1166. 3.31.3.  ifconfig <iface> encapsulation <name>
  1167.  
  1168. Not fully implemented.
  1169.  
  1170. 3.31.4.  ifconfig <iface> forward <forward-iface>
  1171.  
  1172. Set a forwarding interface for multiple channel  interfaces.   To
  1173. remove the forward, set <forward-iface> to <iface>.
  1174.  
  1175. 3.31.5.  ifconfig <iface> ipaddress <hostid>
  1176.  
  1177. Set the IP address for this interface.  It is  standard  Internet
  1178. practice that each interface has its own address.  For hosts with
  1179. only one interface, the interface address is usually the same  as
  1180. the host address.  See also the hostname and ip address commands.
  1181.  
  1182.  
  1183.  
  1184.  
  1185.  
  1186.                         June 7, 1991
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192.                            - 19 -
  1193.  
  1194.  
  1195. 3.31.6.  ifconfig <iface> linkaddress <hardware-dependant>
  1196.  
  1197. Set the hardware dependant address for this interface.
  1198.  
  1199. 3.31.7.  ifconfig <iface> mtu <mtu>
  1200.  
  1201. Set the MTU for this interface.  See the Setting ... MTU, MSS and
  1202. Window chapter for more information.
  1203.  
  1204. 3.31.8.  ifconfig <iface> netmask <address>
  1205.  
  1206. Set the sub-net mask for this interface.  The <address> takes the
  1207. form of an IP address with 1's in the network and subnet parts of
  1208. the address, and 0's in the host part of the  address.   This  is
  1209. related  to  the  broadcast sub-command.  See also the route com-
  1210. mand.
  1211.  
  1212. 3.31.9.  ifconfig <iface> rxbuf <?>
  1213.  
  1214. Not yet implemented.
  1215.  
  1216. 3.32.  ip ...
  1217.  
  1218. These commands configure the Internet Protocol (IP) service.
  1219.  
  1220. 3.32.1.  ip address [<hostid>]
  1221.  
  1222. Display or set the default local IP address. This command must be
  1223. given before an attach command if it is to be used as the default
  1224. IP address for the interface.
  1225.  
  1226. 3.32.2.  ip rtimer [<seconds>]
  1227.  
  1228. Display or set the IP  reassembly  timeout.  The  default  is  30
  1229. seconds.
  1230.  
  1231. 3.32.3.  ip status
  1232.  
  1233. Display Internet Protocol (IP) statistics, such as  total  packet
  1234. counts and error counters of various types.
  1235.  
  1236. 3.32.4.  ip ttl [<hops>]
  1237.  
  1238. Display or set the time-to-live value placed in each outgoing  IP
  1239. datagram.   This  limits  the  number of switch hops the datagram
  1240. will be allowed to take. The idea is to bound the lifetime of the
  1241. packet  should  it  become  caught in a routing loop, so make the
  1242. value slightly larger than the number of hops across the  network
  1243. you expect to transit packets.  The default is set at compilation
  1244. time to the official recommended value for the Internet.
  1245.  
  1246. 3.33.  isat [on | off]
  1247.  
  1248. Display or set the AT flag.  Currently, there is no sure-fire way
  1249.  
  1250.  
  1251.  
  1252.                         June 7, 1991
  1253.  
  1254.  
  1255.  
  1256.  
  1257.  
  1258.                            - 20 -
  1259.  
  1260.  
  1261. to  determine  the  type of clock-chip being used.  If an AT type
  1262. clock is in use, this command will allow measurement of  time  in
  1263. milliseconds,  rather than clock ticks (55 milliseconds per clock
  1264. tick).
  1265.  
  1266. 3.33.1.  kick [<session>]
  1267.  
  1268. Kick all sockets associated with a session;  if  no  argument  is
  1269. given,  kick  the current session.  Performs the same function as
  1270. the ax25 kick and tcp kick commands, but is easier to type.
  1271.  
  1272. 3.34.  log [stop | <filename>]
  1273.  
  1274. Display or set the filename for logging server sessions. If  stop
  1275. is  given  as  the  argument,  logging is terminated (the servers
  1276. themselves are unaffected).  If a file name is given as an  argu-
  1277. ment, server session log entries will be appended to it.
  1278.  
  1279. 3.35.  mbox
  1280.  
  1281. Display the status of the mailbox server system (if configured).
  1282.  
  1283. 3.36.  memory ...
  1284.  
  1285. These commands are used to display memory allocation statistics.
  1286.  
  1287. 3.36.1.  memory free
  1288.  
  1289. Display the storage allocator free list. Each entry consists of a
  1290. starting address, in hex, and a size, in decimal bytes.
  1291.  
  1292. 3.36.2.  memory ibuffs
  1293.  
  1294. Display or set the number of  buffers  on  the  interrupt  buffer
  1295. pool.  The default is 5.
  1296.  
  1297. 3.36.3.  memory ibufsize
  1298.  
  1299. Display or set the size of each buffer on  the  interrupt  buffer
  1300. pool.   Since  the  interrupt  buffer pool consists of fixed-size
  1301. buffers, the value chosen must be large  enough  to  satisfy  the
  1302. needs of the most demanding driver. The default is 2048.
  1303.  
  1304. 3.36.4.  memory sizes
  1305.  
  1306. Display a histogram of storage allocator request sizes. Each his-
  1307. togram bin is a binary order of magnitude (i.e., a factor of 2).
  1308.  
  1309. 3.36.5.  memory status
  1310.  
  1311. Display a summary of storage allocator statistics. The first line
  1312. shows the base address of the heap, its total size, the amount of
  1313. heap memory available in bytes and as a percentage of  the  total
  1314. heap  size,  and the amount of memory left over (i.e., not placed
  1315.  
  1316.  
  1317.  
  1318.                         June 7, 1991
  1319.  
  1320.  
  1321.  
  1322.  
  1323.  
  1324.                            - 21 -
  1325.  
  1326.  
  1327. on the heap at startup) and therefore available for shell subcom-
  1328. mands.
  1329.  
  1330. The second line shows the total number of calls to  allocate  and
  1331. free  blocks of memory, the difference of these two values (i.e.,
  1332. the number of allocated blocks outstanding), the number of  allo-
  1333. cation  requests  that were denied due to lack of memory, and the
  1334. number of calls to free() that attempted to free garbage (eg.  by
  1335. freeing the same block twice or freeing a garbled pointer).
  1336.  
  1337. The third line shows the number of calls to malloc and free  that
  1338. occurred  with  interrupts off. In normal situations these values
  1339. should be zero.  The fourth line shows statistics for the special
  1340. pool of fixed-size buffers used to satisfy requests for memory at
  1341. interrupt time. The variables shown are  the  number  of  buffers
  1342. currently  in  the  pool,  their size, and the number of requests
  1343. that failed due to exhaustion of the pool.
  1344.  
  1345. 3.37.  mkdir <dirname>
  1346.  
  1347. Create a sub-directory in the current working directory.
  1348.  
  1349. 3.38.  mode <iface> [vc | datagram]
  1350.  
  1351. Control the default transmission  mode  on  the  specified  AX.25
  1352. interface. In datagram mode, IP packets are encapsulated in AX.25
  1353. UI frames and transmitted without any other  link  level  mechan-
  1354. isms, such as connections or acknowledgements.
  1355.  
  1356. In vc (virtual circuit) mode,  IP  packets  are  encapsulated  in
  1357. AX.25  I  frames and are acknowledged at the link level according
  1358. to the AX.25 protocol.  Link  level  connections  are  opened  if
  1359. necessary.
  1360.  
  1361. In both modes, ARP is used to map IP  to  AX.25  addresses.   The
  1362. defaults can be overridden with the type-of-service (TOS) bits in
  1363. the IP header. Turning on the "reliability" bit causes  I  frames
  1364. to  be used, while turning on the "low delay" bit uses UI frames.
  1365. (The effect of turning on both bits is undefined and  subject  to
  1366. change).
  1367.  
  1368. In both modes, IP-level fragmentation is done if the datagram  is
  1369. larger  than  the  interface  MTU.  In virtual circuit mode, how-
  1370. ever, the resulting datagram (or fragments) is further fragmented
  1371. at  the  AX.25  layer  if  it (or they) are still larger than the
  1372. AX.25 paclen parameter. In  AX.25  fragmentation,  datagrams  are
  1373. broken into several I frames and reassembled at the receiving end
  1374. before being passed to IP. This is preferable to IP fragmentation
  1375. whenever  possible  because  of decreased overhead (the IP header
  1376. isn't repeated in each fragment) and increased robustness (a lost
  1377. fragment is immediately retransmitted by the link layer).
  1378.  
  1379.  
  1380.  
  1381.  
  1382.  
  1383.  
  1384.                         June 7, 1991
  1385.  
  1386.  
  1387.  
  1388.  
  1389.  
  1390.                            - 22 -
  1391.  
  1392.  
  1393. 3.39.  more <file> [<file> ...]
  1394.  
  1395. Display the specified file(s) a screen at a time. To  proceed  to
  1396. the  next screen, press the space bar; to cancel the display, hit
  1397. the 'q' key.  The more command creates a  session  that  you  can
  1398. suspend and resume just like any other session.
  1399.  
  1400. 3.40.  param <iface> [<param> [value]] ...
  1401.  
  1402. Invoke a device-specific control routine.  The following  parame-
  1403. ter  names  are  recognized by the parameter command, but not all
  1404. are supported by each device type. Most commands deal  only  with
  1405. half-duplex packet radio interfaces.
  1406.  
  1407.         TxDelay - transmit keyup delay
  1408.         Persist - P-persistence setting
  1409.         SlotTime - persistence slot time setting
  1410.         txTail - transmit done holdup delay
  1411.         FullDup - enable/disable full duplex
  1412.         Hardware - hardware specific command
  1413.         TxMute - experimental transmit mute command
  1414.         DTR - control Data Terminal Ready (DTR) signal to modem
  1415.         RTS - control Request to Send (RTS) signal to modem
  1416.         Speed - set line speed
  1417.         EndDelay
  1418.         Group
  1419.         Idle
  1420.         Min
  1421.         MaxKey
  1422.         Wait
  1423.         Down - drop modem control lines
  1424.         Up - raise modem control lines
  1425.         Return - return a KISS TNC to command mode
  1426.  
  1427.  
  1428. Depending on the interface, some parameters can be read  back  by
  1429. omitting  a  new  value.  This  is not possible with KISS TNCs as
  1430. there are no KISS  commands  for  reading  back  previously  sent
  1431. parameters.
  1432.  
  1433. On a KISS TNC interface, the param command  generates  and  sends
  1434. control  packets  to the TNC.  Data bytes are treated as decimal.
  1435. For example, param ax0 txdelay 255   will  set  the  keyup  timer
  1436. (type  field  =  1)  on  the  KISS  TNC configured as ax0 to 2.55
  1437. seconds (255 x .01 sec).  On all asy interfaces (slip, kiss/ax25,
  1438. nrs, ppp) the param <iface> speed command allows the baud rate to
  1439. be read or set.
  1440.  
  1441. The implementation of this  command  for  the  various  interface
  1442. drivers is incomplete and subject to change.
  1443.  
  1444. 3.41.  ping <hostid> [<length> [<seconds> [<incflag>]]]
  1445.  
  1446. Ping (send ICMP Echo Request packets to) the specified  host.  By
  1447.  
  1448.  
  1449.  
  1450.                         June 7, 1991
  1451.  
  1452.  
  1453.  
  1454.  
  1455.  
  1456.                            - 23 -
  1457.  
  1458.  
  1459. default  the data field contains only a small timestamp to aid in
  1460. determining round trip time; if the optional length  argument  is
  1461. given,  the  appropriate  number of data bytes (consisting of hex
  1462. 55) are added to the ping packets.
  1463.  
  1464. If interval is specified, pings will be repeated indefinitely  at
  1465. the  specified  number of seconds; otherwise a single, "one shot"
  1466. ping is done.  Responses to one-shot pings appear  asynchronously
  1467. on the command screen, while repeated pings create a session that
  1468. may be suspended and resumed.  Pinging continues until  the  ses-
  1469. sion is manually reset.
  1470.  
  1471. The incflag option causes a repeated ping to increment the target
  1472. IP  address  for  each  ping;  it  is an experimental feature for
  1473. searching blocks of IP addresses for active hosts.
  1474.  
  1475. 3.42.  ppp ...
  1476.  
  1477. These commands are used to  configure  Point  to  Point  Protocol
  1478. interfaces.
  1479.  
  1480. This implementation of PPP is designed to be as complete as  pos-
  1481. sible.   Because  of  this,  the  number of options can be rather
  1482. daunting.  However, a typical PPP configuration might include the
  1483. following commands:
  1484.  
  1485.         attach asy 0x3f8 4 ppp pp0 4096 1500 9600 r
  1486.         dial pp0 dialer.pp0 30
  1487.         #
  1488.         ppp pp0 quick
  1489.         ppp pp0 lcp open
  1490.         #
  1491.         route add default pp0
  1492.  
  1493.  
  1494. 3.42.1.  ppp <iface>
  1495.  
  1496. Display the status of the PPP interface.
  1497.  
  1498. 3.42.2.  ppp <iface> quick
  1499.  
  1500. Quick setup for the PPP link.  By popular demand, this command is
  1501. a shortcut for the following commands:
  1502.  
  1503.         ppp pp0 ipcp local compress tcp 16 1
  1504.         ppp pp0 ipcp open
  1505.         ppp pp0 lcp local accm 0
  1506.         ppp pp0 lcp local acfc on
  1507.         ppp pp0 lcp local pfc on
  1508.         ppp pp0 lcp local magic on
  1509.  
  1510.  
  1511.  
  1512.  
  1513.  
  1514.  
  1515.  
  1516.                         June 7, 1991
  1517.  
  1518.  
  1519.  
  1520.  
  1521.  
  1522.                            - 24 -
  1523.  
  1524.  
  1525. 3.42.3.  ppp <iface> lcp ...
  1526.  
  1527. These commands are used for the LCP [Link Control Protocol]  con-
  1528. figuration.
  1529.  
  1530. 3.42.3.1.  ppp <iface> lcp close
  1531.  
  1532. Shutdown the PPP interface.
  1533.  
  1534. 3.42.3.2.  ppp <iface> lcp local ...
  1535.  
  1536. These commands control the configuration of the local side of the
  1537. link.   If an option is specified, the parameters will be used as
  1538. the initial values in configuration requests.  If not  specified,
  1539. that option will not be requested.
  1540.  
  1541. For each of these options, the allow parameter  will  permit  the
  1542. remote  to  include  that  option  in its response, even when the
  1543. option is not included in the request.  By default,  all  options
  1544. are allowed.
  1545.  
  1546. 3.42.3.2.1.  ppp <iface> lcp local accm [ <bitmap> | allow [on  |
  1547. off] ]
  1548.  
  1549. Display or set the Async Control Character Map.  The  default  is
  1550. 0xffffffff.
  1551.  
  1552. 3.42.3.2.2.  ppp <iface> lcp local authenticate [ pap  |  none  |
  1553. allow [on | off] ]
  1554.  
  1555. Display or set the authentication protocol.  The default is none.
  1556.  
  1557. 3.42.3.2.3.  ppp <iface> lcp local acfc [ on | off | allow [on  |
  1558. off] ]
  1559.  
  1560. Display or set the option to compress  the  address  and  control
  1561. fields  of the PPP HLDC-like header.  This is generally desirable
  1562. for slow asynchronous links, and undesirable for fast or synchro-
  1563. nous links.  The default is off.
  1564.  
  1565. 3.42.3.2.4.  ppp <iface> lcp local pfc [ on | off | allow  [on  |
  1566. off] ]
  1567.  
  1568. Display or set the option to compress the protocol field  of  the
  1569. PPP HLDC-like header.  This is generally desirable for slow asyn-
  1570. chronous links, and undesirable for fast  or  synchronous  links.
  1571. The default is off.
  1572.  
  1573. 3.42.3.2.5.  ppp <iface> lcp local magic [ on | off |  <value>  |
  1574. allow [on | off] ]
  1575.  
  1576. Display or set the initial Magic  Number.   The  default  is  off
  1577. (zero).
  1578.  
  1579.  
  1580.  
  1581.  
  1582.                         June 7, 1991
  1583.  
  1584.  
  1585.  
  1586.  
  1587.  
  1588.                            - 25 -
  1589.  
  1590.  
  1591. 3.42.3.2.6.  ppp <iface> lcp local mru [ <size>  |  allow  [on  |
  1592. off] ]
  1593.  
  1594. Display or set the Maximum Receive Unit.  The default is 1500.
  1595.  
  1596. 3.42.3.2.7.  ppp <iface> lcp local default
  1597.  
  1598. Reset the options to their default values.
  1599.  
  1600. 3.42.3.3.  ppp <iface> lcp listen
  1601.  
  1602. Wait for the physical layer to come up, then wait for  configura-
  1603. tion negotiation from the remote.  The open command is preferred.
  1604.  
  1605. 3.42.3.4.  ppp <iface> lcp open
  1606.  
  1607. Wait for the physical layer to come up, then initiate  configura-
  1608. tion negotiation.
  1609.  
  1610. 3.42.3.5.  ppp <iface> lcp remote ...
  1611.  
  1612. These commands control the configuration of the  remote  side  of
  1613. the  link.  The options are identical to those of the local side.
  1614. If an option  is  specified,  the  parameters  will  be  used  in
  1615. responses  to the remote's configuration requests.  If not speci-
  1616. fied, that option will be accepted if it is allowed.
  1617.  
  1618. For each of these options, the allow parameter  will  permit  the
  1619. remote  to  specify  that option in its request.  By default, all
  1620. options are allowed.
  1621.  
  1622. 3.42.3.6.  ppp <iface> lcp timeout [<seconds>]
  1623.  
  1624. Display or set the interval to wait between configuration or ter-
  1625. mination attempts.  The default is 3 seconds.
  1626.  
  1627. 3.42.3.7.  ppp <iface> lcp try ...
  1628.  
  1629. These commands are used for the various counters.
  1630.  
  1631. 3.42.3.7.1.  ppp <iface> lcp try configure [<count>]
  1632.  
  1633. Display or set the number of configuration  requests  sent.   The
  1634. default is 20.
  1635.  
  1636. 3.42.3.7.2.  ppp <iface> lcp try failure [<count>]
  1637.  
  1638. Display or set the number of bad configuration  requests  allowed
  1639. from the remote.  The default is 10.
  1640.  
  1641. 3.42.3.7.3.  ppp <iface> lcp try terminate [<count>]
  1642.  
  1643. Display or set the number of  termination  requests  sent  before
  1644. shutdown.  The default is 2.
  1645.  
  1646.  
  1647.  
  1648.                         June 7, 1991
  1649.  
  1650.  
  1651.  
  1652.  
  1653.  
  1654.                            - 26 -
  1655.  
  1656.  
  1657. 3.42.4.  ppp <iface> ipcp ...
  1658.  
  1659. These commands are used for the IPCP [Internet  Protocol  Control
  1660. Protocol] configuration.
  1661.  
  1662. The close, listen, open, timeout and try sub-commands are identi-
  1663. cal to the LCP (described above).
  1664.  
  1665. 3.42.4.1.  ppp <iface> ipcp local ...
  1666.  
  1667. These commands control the configuration of the local side of the
  1668. link.   If an option is specified, the parameters will be used as
  1669. the initial values in configuration requests.  If not  specified,
  1670. that option will not be requested.
  1671.  
  1672. For each of these options, the allow parameter  will  permit  the
  1673. remote  to  include  that  option  in its response, even when the
  1674. option is not included in the request.  By default,  all  options
  1675. are allowed.
  1676.  
  1677. 3.42.4.1.1.  ppp <iface> ipcp local address [  <hostid>  |  allow
  1678. [on | off] ]
  1679.  
  1680. Display or set the local address for negotiation purposes.  If an
  1681. address of 0 is specified, the other side of the link will supply
  1682. the address.  By default, no addresses are negotiated.
  1683.  
  1684. 3.42.4.1.2.  ppp  <iface>  ipcp  local  compress  [  tcp  <slots>
  1685. [<flag>] | none | allow [on | off] ]
  1686.  
  1687. Display or set the compression protocol.  The default is none.
  1688.  
  1689. The tcp <slots> specifies the  number  of  "conversation"  slots,
  1690. which must be 1 to 255.  (This may be limited at compilation time
  1691. to a smaller number.) A good choice is in the range 4 to 16.
  1692.  
  1693. The tcp <flag> is 0 (don't compress the slot number) or 1 (OK  to
  1694. compress  the  slot  number).   KA9Q  can  handle compressed slot
  1695. numbers, so the default is 1.
  1696.  
  1697. 3.42.4.2.  ppp <iface> ipcp remote ...
  1698.  
  1699. These commands control the configuration of the  remote  side  of
  1700. the  link.  The options are identical to those of the local side.
  1701. If an option  is  specified,  the  parameters  will  be  used  in
  1702. responses  to the remote's configuration requests.  If not speci-
  1703. fied, that option will be accepted if it is allowed.
  1704.  
  1705. For each of these options, the allow parameter  will  permit  the
  1706. remote  to  specify  that option in its request.  By default, all
  1707. options are allowed.
  1708.  
  1709.  
  1710.  
  1711.  
  1712.  
  1713.  
  1714.                         June 7, 1991
  1715.  
  1716.  
  1717.  
  1718.  
  1719.  
  1720.                            - 27 -
  1721.  
  1722.  
  1723. 3.42.4.3.  ppp <iface> ipcp pool [<ip-address> [<count>]]
  1724.  
  1725. Specify a pool of addresses to be assigned to the  <iface>.   The
  1726. <count> is the number of addresses in the pool; the default is 1.
  1727.  
  1728. The addresses will be used in rotation.   Overlapping  series  of
  1729. addresses may be assigned to more than one <iface>, and conflicts
  1730. will be resolved.
  1731.  
  1732. 3.42.5.  ppp <iface> pap ...
  1733.  
  1734. These commands are used for the PAP [Password Authentication Pro-
  1735. tocol] configuration.
  1736.  
  1737. The timeout  and  try  sub-commands  are  identical  to  the  LCP
  1738. (described above).  However, the terminate counter is unused.
  1739.  
  1740. 3.42.5.1.  ppp <iface> pap user [ <username> [<password>] ]
  1741.  
  1742. Display or set the username (the password may  be  set,  but  not
  1743. displayed).   When  the username is specified, but no password is
  1744. supplied, the ftpusers file is searched for the password.  When a
  1745. username/password  is  unknown or rejected, a session will appear
  1746. at the console to prompt for a new username/password.
  1747.  
  1748. 3.42.6.  ppp <iface> trace [<flags>]
  1749.  
  1750. Display or set the flags that control the logging of  information
  1751. during PPP link configuration.
  1752.  
  1753. The flag value is 0 for none, 1 for basic,  and  2  for  general.
  1754. Values greater than 2 are usually not compiled, and are described
  1755. in the appropriate source files where they are defined.
  1756.  
  1757. 3.43.  ps
  1758.  
  1759. Display all current processes in the system. The  fields  are  as
  1760. follows:
  1761.  
  1762. PID - Process ID (the address of the process descriptor).
  1763.  
  1764. SP - The current value of the process stack pointer.
  1765.  
  1766. stksize - The size of the stack allocated to the process.
  1767.  
  1768. maxstk - The apparent peak stack  utilization  of  this  process.
  1769. This  is  done  in  a  somewhat heuristic fashion, so the numbers
  1770. should be treated as  approximate.  If  this  number  reaches  or
  1771. exceeds  the  stksize  figure,  the  system  is almost certain to
  1772. crash; the net.exe program should be recompiled to give the  pro-
  1773. cess a larger allocation when it is started.
  1774.  
  1775. event - The event this task is waiting for, if it  is  not  runn-
  1776. able.
  1777.  
  1778.  
  1779.  
  1780.                         June 7, 1991
  1781.  
  1782.  
  1783.  
  1784.  
  1785.  
  1786.                            - 28 -
  1787.  
  1788.  
  1789. fl -  Process  status  flags.  There  are  three:  I  (Interrupts
  1790. enabled),  W (Waiting for event) and S (Suspended). The I flag is
  1791. set whenever a task has executed a pwait() call (wait for  event)
  1792. without first disabling hardware interrupts. Only tasks that wait
  1793. for hardware interrupt events will turn off this  flag;  this  is
  1794. done to avoid critical sections and missed interrupts. The W flag
  1795. indicates that the process is waiting for  an  event;  the  event
  1796. column will be non-blank. Note that although there may be several
  1797. runnable processes at any time (shown in the ps listing as  those
  1798. without  the W flag and with blank event fields) only one process
  1799. is actually running at any one instant  (The  Refrigerator  Light
  1800. Effect  says  that  the ps command is always the one running when
  1801. this display is generated.)
  1802.  
  1803. 3.44.  pwd [<dirname>]
  1804.  
  1805. An alias for the cd command.
  1806.  
  1807. 3.45.  record [off | <filename>]
  1808.  
  1809. Append to filename all data  received  on  the  current  session.
  1810. Data  sent  on  the current session is also written into the file
  1811. except for Telnet sessions in  remote  echo  mode.   The  command
  1812. record off stops recording and closes the file.
  1813.  
  1814. 3.46.  remote [-p <port>] [-k  <key>]  [-a  <kickaddr>]  <hostid>
  1815. exit | reset | kick
  1816.  
  1817. Send a UDP packet to the specified host commanding it to exit the
  1818. net.exe  program,  reset the processor, or force a retransmission
  1819. on TCP connections.  For this command to be accepted, the  remote
  1820. system  must  be  running  the  remote server and the port number
  1821. specified in the remote command must match the port number  given
  1822. when  the  server  was started on the remote system.  If the port
  1823. numbers do not match, or if the remote server is not  running  on
  1824. the  target  system,  the command packet is ignored.  Even if the
  1825. command is accepted there is no acknowledgement.
  1826.  
  1827. The kick command forces a retransmission timeout on all TCP  con-
  1828. nections that the remote node may have with the local node.  If a
  1829. connection is idle, a current ACK packet (without data) is  sent.
  1830. If  the  -a option is used, connections to the specified host are
  1831. kicked instead. No key is required for the kick subcommand.
  1832.  
  1833. The exit and reset subcommands are mainly useful  for  restarting
  1834. the  net.exe program on a remote unattended system after the con-
  1835. figuration file has  been  updated.   The  remote  system  should
  1836. invoke the net.exe program automatically upon booting, preferably
  1837. in an infinite loop.  For example, under  MS-DOS  the  boot  disk
  1838. should contain the following in autoexec.net:
  1839.  
  1840.         :loop
  1841.         net
  1842.         goto :loop
  1843.  
  1844.  
  1845.  
  1846.                         June 7, 1991
  1847.  
  1848.  
  1849.  
  1850.  
  1851.  
  1852.                            - 29 -
  1853.  
  1854.  
  1855. 3.47.  remote -s <key>
  1856.  
  1857. The exit and reset subcommands of remote require a password.  The
  1858. password  is  set on a given system with the -s option, and it is
  1859. specified in a command to a remote system with the -k option.  If
  1860. no  password  is  set with the -s option, then the exit and reset
  1861. subcommands are disabled.
  1862.  
  1863. Note that remote is an experimental feature in NOS; it is not yet
  1864. supported by any other TCP/IP implementation.
  1865.  
  1866. 3.48.  rename <oldfilename> <newfilename>
  1867.  
  1868. Rename oldfilename to newfilename.
  1869.  
  1870. 3.49.  reset [<session>]
  1871.  
  1872. Reset the specified session; if no argument is given,  reset  the
  1873. current  session.  This command should be used with caution since
  1874. it does not reliably inform the remote end that the connection no
  1875. longer  exists.   (In TCP a reset (RST) message will be automati-
  1876. cally generated should the remote TCP send anything after a local
  1877. reset  has been done.  In AX.25 the DM message performs a similar
  1878. role.  Both are used to get rid of a lingering half-open  connec-
  1879. tion after a remote system has crashed.)
  1880.  
  1881. 3.50.  rip ...
  1882.  
  1883. These commands are used for the RIP service.
  1884.  
  1885. 3.50.1.  rip accept <gateway>
  1886.  
  1887. Remove the specified gateway from the RIP filter table,  allowing
  1888. future broadcasts from that gateway to be accepted.
  1889.  
  1890. 3.50.2.  rip add <hostid> <seconds> [<flags>]
  1891.  
  1892. Add an entry to the RIP broadcast table.  The  IP  routing  table
  1893. will be sent to hostid every interval seconds. If flags is speci-
  1894. fied as 1, then "split horizon" processing will be performed  for
  1895. this  destination. That is, any IP routing table entries pointing
  1896. to the interface that will be used to send this  update  will  be
  1897. removed  from  the  update.   If  split horizon processing is not
  1898. specified, then all routing table  entries  except  those  marked
  1899. "private"  will  be  sent  in  each update.  (Private entries are
  1900. never sent in RIP packets).
  1901.  
  1902. Triggered updates are always done. That is,  any  change  in  the
  1903. routing  table  that causes a previously reachable destination to
  1904. become unreachable will trigger an  update  that  advertises  the
  1905. destination with metric 15, defined to mean "infinity".
  1906.  
  1907. Note that for RIP packets to be  sent  properly  to  a  broadcast
  1908. address,  there  must  exist  correct  IP  routing  and ARP table
  1909.  
  1910.  
  1911.  
  1912.                         June 7, 1991
  1913.  
  1914.  
  1915.  
  1916.  
  1917.  
  1918.                            - 30 -
  1919.  
  1920.  
  1921. entries that will first steer the broadcast to the correct inter-
  1922. face  and  then place the correct link-level broadcast address in
  1923. the link-level destination field.  If  a  standard  IP  broadcast
  1924. address  convention  is  used  (eg. 128.96.0.0 or 128.96.255.255)
  1925. then chances are you already have the necessary IP routing  table
  1926. entry,  but  unusual  subnet  or  cluster-addressed  networks may
  1927. require special attention.  However, an arp add command  will  be
  1928. required  to translate this address to the appropriate link level
  1929. broadcast address.  For example,
  1930.  
  1931.  
  1932. arp add 128.96.0.0 ethernet ff:ff:ff:ff:ff:ff
  1933.  
  1934.  
  1935. for an Ethernet network, and
  1936.  
  1937.  
  1938. arp add 44.255.255.255 ax25 qst-0
  1939.  
  1940.  
  1941. for an AX25 packet radio channel.
  1942.  
  1943. 3.50.3.  rip drop <dest>
  1944.  
  1945. Remove an entry from the RIP broadcast table.
  1946.  
  1947. 3.50.4.  rip merge [on | off]
  1948.  
  1949. This flag controls  an  experimental  feature  for  consolidating
  1950. redundant  entries  in  the IP routing table. When rip merging is
  1951. enabled, the table is scanned after processing each  RIP  update.
  1952. An entry is considered redundant if the target(s) it covers would
  1953. be routed identically by a less "specific" entry already  in  the
  1954. table.  That is, the target address(es) specified by the entry in
  1955. question must  also  match  the  target  addresses  of  the  less
  1956. specific  entry  and the two entries must have the same interface
  1957. and gateway fields. For example, if the routing table contains
  1958.  
  1959.  
  1960. Dest            Len Interface    Gateway          Metric  P Timer  Use
  1961. 1.2.3.4         32  ethernet0    128.96.1.2       1       0 0      0
  1962. 1.2.3           24  ethernet0    128.96.1.2       1       0 0      0
  1963.  
  1964.  
  1965. then the first entry would be deleted as redundant since  packets
  1966. sent  to  1.2.3.4  will  still  be routed correctly by the second
  1967. entry. Note that the relative metrics of the entries are ignored.
  1968.  
  1969. 3.50.5.  rip refuse <gateway>
  1970.  
  1971. Refuse to accept RIP updates from the specified gateway by adding
  1972. the gateway to the RIP filter table. It may be later removed with
  1973. the rip accept command.
  1974.  
  1975.  
  1976.  
  1977.  
  1978.                         June 7, 1991
  1979.  
  1980.  
  1981.  
  1982.  
  1983.  
  1984.                            - 31 -
  1985.  
  1986.  
  1987. 3.50.6.  rip request <gateway>
  1988.  
  1989. Send a RIP Request packet to the specified gateway, causing it to
  1990. reply with a RIP Response packet containing its routing table.
  1991.  
  1992. 3.50.7.  rip status
  1993.  
  1994. Display RIP status, including a count of the  number  of  packets
  1995. sent  and  received,  the  number  of requests and responses, the
  1996. number of unknown RIP packet types, and the number of refused RIP
  1997. updates  from  hosts in the filter table. A list of the addresses
  1998. and intervals to which periodic RIP updates  are  being  sent  is
  1999. also shown, along with the contents of the filter table.
  2000.  
  2001. 3.50.8.  rip trace [0 | 1 | 2]
  2002.  
  2003. This variable controls the tracing of incoming and  outgoing  RIP
  2004. packets.   Setting it to 0 disables all RIP tracing. A value of 1
  2005. causes changes in the routing table to be displayed, while  pack-
  2006. ets  that  cause no changes cause no output. Setting the variable
  2007. to 2 produces maximum output, including tracing  of  RIP  packets
  2008. that cause no change in the routing table.
  2009.  
  2010. 3.51.  rmdir <dirname>
  2011.  
  2012. Remove a sub-directory from the current working directory.
  2013.  
  2014. 3.52.  route
  2015.  
  2016. With no arguments, route displays the IP routing table.
  2017.  
  2018. 3.52.1.   route  add  <dest_hostid>[/bits]  |   default   <iface>
  2019. [<gateway_hostid> [<metric>]]
  2020.  
  2021. This command adds an entry to the routing table. It  requires  at
  2022. least  two  more  arguments, the hostid of the target destination
  2023. and the name of the interface to  which  its  packets  should  be
  2024. sent.   If  the  destination  is  not local, the gateway's hostid
  2025. should also be specified. (If the interface is  a  point-to-point
  2026. link,  then  gateway_hostid  may be omitted even if the target is
  2027. non-local because this  field  is  only  used  to  determine  the
  2028. gateway's  link  level  address,  if  any.  If the destination is
  2029. directly reachable, gateway_hostid is also unnecessary since  the
  2030. destination  address  is  used  to  determine  the interface link
  2031. address).
  2032.  
  2033. The optional /bits suffix to the destination  host  id  specifies
  2034. how  many leading bits in the host id are to be considered signi-
  2035. ficant in the routing comparisons.  If  not  specified,  32  bits
  2036. (i.e., full significance) is assumed.  With this option, a single
  2037. routing table entry may refer to many hosts all sharing a  common
  2038. bit  string prefix in their IP addresses. For example, ARPA Class
  2039. A, B and C networks would use suffixes of /8, /16 and /24 respec-
  2040. tively; the command
  2041.  
  2042.  
  2043.  
  2044.                         June 7, 1991
  2045.  
  2046.  
  2047.  
  2048.  
  2049.  
  2050.                            - 32 -
  2051.  
  2052.  
  2053.  
  2054. route add 44/8 sl0 44.64.0.2
  2055.  
  2056.  
  2057. causes any IP addresses beginning with "44" in the first  8  bits
  2058. to  be  routed  to  44.64.0.2;  the remaining 24 bits are "don't-
  2059. cares".
  2060.  
  2061. When an IP address to be routed matches more than  one  entry  in
  2062. the  routing  table, the entry with largest bits parameter (i.e.,
  2063. the "best" match) is used. This allows individual hosts or blocks
  2064. of  hosts  to  be  exceptions to a more general rule for a larger
  2065. block of hosts.
  2066.  
  2067. The special destination default is used  to  route  datagrams  to
  2068. addresses  not matched by any other entries in the routing table;
  2069. it is equivalent to specifying a /bits suffix of /0 to any desti-
  2070. nation hostid.  Care must be taken with default entries since two
  2071. nodes with default entries pointing  at  each  other  will  route
  2072. packets to unknown addresses back and forth in a loop until their
  2073. time-to-live (TTL) fields expire.  (Routing  loops  for  specific
  2074. addresses  can  also be created, but this is less likely to occur
  2075. accidentally). The best way to use default routes is to pick  one
  2076. node in your network that has the "best" connections to the world
  2077. outside your network. Create a spanning tree with  that  node  as
  2078. the  root  and have each node install a default route pointing in
  2079. the direction of that node, with the exception of the root node.
  2080.  
  2081. Here are some examples of the route command:
  2082.  
  2083. # Route datagrams to IP address 44.0.0.3 to SLIP line #0.
  2084. # No gateway is needed because SLIP is point-to point.
  2085. route add 44.0.0.3 sl0
  2086.  
  2087. # Route all default traffic to the gateway on the local Ethernet
  2088. # with IP address 44.0.0.1
  2089. route add default ec0 44.0.0.1
  2090.  
  2091. # The local Ethernet has an ARPA Class-C address assignment;
  2092. # route all IP addresses beginning with 192.4.8 to it
  2093. route add 192.4.8/24 ec0
  2094.  
  2095. # The station with IP address 44.0.0.10 is on the local AX.25 channel
  2096. route add 44.0.0.10 ax0
  2097.  
  2098.  
  2099. 3.52.2.  route addprivate <dest hostid>[/bits] | default  <iface>
  2100. [<gateway hostid> [<metric>]]
  2101.  
  2102. This command is identical to route add except that it also  marks
  2103. the  new  entry as private; it will never be included in outgoing
  2104. RIP updates.
  2105.  
  2106.  
  2107.  
  2108.  
  2109.  
  2110.                         June 7, 1991
  2111.  
  2112.  
  2113.  
  2114.  
  2115.  
  2116.                            - 33 -
  2117.  
  2118.  
  2119. 3.52.3.  route drop <dest hostid>
  2120.  
  2121. route drop deletes an entry from the table. If a  packet  arrives
  2122. for the deleted address and a default route is in effect, it will
  2123. be used.
  2124.  
  2125. 3.53.  session [<session #>]
  2126.  
  2127. Without arguments, displays the list of current sessions, includ-
  2128. ing  session  number, remote TCP or AX.25 address and the associ-
  2129. ated socket index.  An asterisk (*) is shown next to the  current
  2130. session; entering a blank line at this point puts you in converse
  2131. mode with that session.  Entering a session number as an argument
  2132. to  the  session  command will put you in converse mode with that
  2133. session.  If the Telnet server is enabled, the user  is  notified
  2134. of  an  incoming  request  and  a session number is automatically
  2135. assigned.  The user may then select the session normally to  con-
  2136. verse with the remote user as though the session had been locally
  2137. initiated.
  2138.  
  2139. 3.54.  shell
  2140.  
  2141. Suspends net.exe and executes a  sub-shell  ("command  processor"
  2142. under  MS-DOS).  When the sub-shell exits, net.exe resumes (under
  2143. MS-DOS,  enter  the  exit  command).   Background  activity  (FTP
  2144. servers, etc) is also suspended while the subshell executes. Note
  2145. that this will fail unless there is sufficient unused memory  for
  2146. the sub-shell and whatever command the user tries to run.
  2147.  
  2148. 3.55.  smtp ...
  2149.  
  2150. These commands control the operation of the Simple Mail  Transfer
  2151. Protocol (that is, mail).
  2152.  
  2153. 3.55.1.  smtp gateway [<hostid>]
  2154.  
  2155. Displays or sets the host to be used as a "smart" mail relay. Any
  2156. mail sent to a host not in the host table will instead be sent to
  2157. the gateway for forwarding.
  2158.  
  2159. 3.55.2.  smtp kick
  2160.  
  2161. Run through the outgoing mail queue and attempt  to  deliver  any
  2162. pending  mail.   This  command allows the user to "kick" the mail
  2163. system manually.  Normally, this command is periodically  invoked
  2164. by a timer whenever net.exe is running.
  2165.  
  2166. 3.55.3.  smtp maxclients [<count>]
  2167.  
  2168. Displays or sets the maximum number of simultaneous outgoing SMTP
  2169. sessions  that  will  be allowed. The default is 10; reduce it if
  2170. network congestion is a problem.
  2171.  
  2172.  
  2173.  
  2174.  
  2175.  
  2176.                         June 7, 1991
  2177.  
  2178.  
  2179.  
  2180.  
  2181.  
  2182.                            - 34 -
  2183.  
  2184.  
  2185. 3.55.4.  smtp timer [<seconds>]
  2186.  
  2187. Displays or sets the interval between "kicks" (scans) of the out-
  2188. bound mail queue. For example, smtp timer 600 will cause the sys-
  2189. tem to check for outgoing mail every 10 minutes  and  attempt  to
  2190. deliver  anything  it  finds,  subject of course to the smtp max-
  2191. clients limit. Setting a value of zero  disables  queue  scanning
  2192. altogether,  note that this is the default!  This value is recom-
  2193. mended for stand alone IP gateways that never handle mail,  since
  2194. it saves wear and tear on the floppy disk drive.
  2195.  
  2196. 3.55.5.  smtp trace [<value>]
  2197.  
  2198. Displays or sets the trace flag in the SMTP client, allowing  you
  2199. to  watch  SMTP's  conversations  as it delivers mail.  Zero (the
  2200. default) disables tracing.
  2201.  
  2202. 3.56.  socket [<socket #>]
  2203.  
  2204. Without an argument, displays all active  sockets,  giving  their
  2205. index  and  type,  the address of the associated protocol control
  2206. block and the and owner process ID and name. If the index  to  an
  2207. active socket is supplied, the status display for the appropriate
  2208. protocol is called.  For example, if the socket refers to  a  TCP
  2209. connection, the display will be that given by the tcp status com-
  2210. mand with the protocol control block address.
  2211.  
  2212. 3.57.  start ax25 | discard | echo | ftp | netrom | remote | smtp
  2213. | telnet | ttylink
  2214.  
  2215. Start the specified Internet server, allowing  remote  connection
  2216. requests.
  2217.  
  2218. 3.58.  stop ax25 | discard | echo | ftp | netrom | remote |  smtp
  2219. | telnet | ttylink
  2220.  
  2221. Stop the specified Internet server, rejecting any further  remote
  2222. connect  requests.  Existing  connections are allowed to complete
  2223. normally.
  2224.  
  2225. 3.59.  tcp ...
  2226.  
  2227. These commands are used for  the  Transmission  Control  Protocol
  2228. service.
  2229.  
  2230. 3.59.1.  tcp irtt [<milliseconds>]
  2231.  
  2232. Display or set the initial round  trip  time  estimate,  in  mil-
  2233. liseconds,  to  be  used  for  new TCP connections until they can
  2234. measure and adapt to the actual value.  The default is 5000  mil-
  2235. liseconds  (5 seconds).  Increasing this when operating over slow
  2236. channels will avoid the flurry of retransmissions that would oth-
  2237. erwise occur as the smoothed estimate settles down at the correct
  2238. value. Note that this command should be given before servers  are
  2239.  
  2240.  
  2241.  
  2242.                         June 7, 1991
  2243.  
  2244.  
  2245.  
  2246.  
  2247.  
  2248.                            - 35 -
  2249.  
  2250.  
  2251. started in order for it to have effect on incoming connections.
  2252.  
  2253. TCP also caches measured round trip  times  and  mean  deviations
  2254. (MDEV)  for  current  and recent destinations. Whenever a new TCP
  2255. connection is opened, the system first looks in  this  cache.  If
  2256. the  destination  is  found,  the cached IRTT and MDEV values are
  2257. used. If not, the default IRTT value  mentioned  above  is  used,
  2258. along  with a MDEV of 0.  This feature is fully automatic, and it
  2259. can improve performance greatly when a series of connections  are
  2260. opened  and  closed  to  a given destination (eg. a series of FTP
  2261. file transfers or directory listings).
  2262.  
  2263. 3.59.2.  tcp kick <tcb_addr>
  2264.  
  2265. If there is unacknowledged data on the send queue of  the  speci-
  2266. fied TCB, this command forces an immediate retransmission.
  2267.  
  2268. 3.59.3.  tcp mss [<size>]
  2269.  
  2270. Display or set the TCP Maximum Segment Size in bytes that will be
  2271. sent  on  all  outgoing TCP connect request (SYN segments).  This
  2272. tells the remote end the size of the largest segment (packet)  it
  2273. may  send. Changing MSS affects only future connections; existing
  2274. connections are unaffected.
  2275.  
  2276. 3.59.4.  tcp reset <tcb_addr>
  2277.  
  2278. Deletes the TCP control block at the specified address.
  2279.  
  2280. 3.59.5.  tcp rtt <tcb_addr> <rtt> <mdev>
  2281.  
  2282. Replaces the automatically computed  round  trip  time  and  mean
  2283. deviation  values  in  the  specified TCB with new values in mil-
  2284. liseconds.  This command is useful to speed up  recovery  from  a
  2285. series  of  lost packets since it provides a manual bypass around
  2286. the normal backoff retransmission timing mechanisms.
  2287.  
  2288. 3.59.6.  tcp status [<tcb_addr>]
  2289.  
  2290. Without arguments, displays several TCP-level statistics, plus  a
  2291. summary  of  all existing TCP connections, including TCB address,
  2292. send and receive queue sizes, local and remote sockets, and  con-
  2293. nection  state. If tcb_addr is specified, a more detailed dump of
  2294. the specified  TCB  is  generated,  including  send  and  receive
  2295. sequence numbers and timer information.
  2296.  
  2297. 3.59.7.  tcp window [<size>]
  2298.  
  2299. Displays or sets the default receive window size in bytes  to  be
  2300. used  by  TCP when creating new connections. Existing connections
  2301. are unaffected.
  2302.  
  2303.  
  2304.  
  2305.  
  2306.  
  2307.  
  2308.                         June 7, 1991
  2309.  
  2310.  
  2311.  
  2312.  
  2313.  
  2314.                            - 36 -
  2315.  
  2316.  
  2317. 3.60.  telnet <hostid>
  2318.  
  2319. Creates a Telnet session to the specified host  and  enters  con-
  2320. verse mode.
  2321.  
  2322. 3.61.  tip <iface>
  2323.  
  2324. Creates a tip session that connects to the specified interface in
  2325. "dumb  terminal"  mode.   The  interface  must  have already been
  2326. attached  with  the  attach  command.   Any  packet  traffic  (IP
  2327. datagrams, etc) routed to the interface while this session exists
  2328. will be discarded.  To close a tip session, use  the  reset  com-
  2329. mand. It will then revert to normal slip, nrs or kiss mode opera-
  2330. tion.
  2331.  
  2332. This feature is primarily useful for manually  establishing  SLIP
  2333. connections.   At  present,  only the built-in "com" ports can be
  2334. used with this command.
  2335.  
  2336. 3.62.  trace [<iface> [off | <btio> [<tracefile>]]]
  2337.  
  2338. Controls packet tracing by the interface drivers.  Specific  bits
  2339. enable tracing of the various interfaces and the amount of infor-
  2340. mation produced.  Tracing is controlled on a per-interface basis;
  2341. without  arguments,  trace gives a list of all defined interfaces
  2342. and their tracing status.  Output can  be  limited  to  a  single
  2343. interface  by  specifying it, and the control flags can be change
  2344. by specifying them as well. The flags are given as a  hexadecimal
  2345. number which is interpreted as follows:
  2346.  
  2347.     O - Enable tracing of output packets if 1, disable if 0
  2348.     I - Enable tracing of input packets if 1, disable if 0
  2349.     T - Controls type of tracing:
  2350.         0 - Protocol headers are decoded, but data is not displayed
  2351.         1 - Protocol headers are decoded, and data (but not the
  2352.             headers themselves) are displayed as ASCII characters,
  2353.             64 characters/line. Unprintable characters are displayed
  2354.             as periods.
  2355.         2 - Protocol headers are decoded, and the entire packet
  2356.             (headers AND data) is also displayed in hexadecimal
  2357.             and ASCII, 16 characters per line.
  2358.     B - Broadcast filter flag. If set, only packets specifically addressed
  2359.         to this node will be traced; broadcast packets will not be displayed.
  2360.  
  2361. If tracefile is not specified, tracing will be to the console.
  2362.  
  2363. 3.63.  udp status
  2364.  
  2365. Displays the status of all UDP receive queues.
  2366.  
  2367. 3.64.  upload [<filename>]
  2368.  
  2369. Opens filename and sends it on the current session as  though  it
  2370. were typed on the terminal.
  2371.  
  2372.  
  2373.  
  2374.                         June 7, 1991
  2375.  
  2376.  
  2377.  
  2378.  
  2379.  
  2380.                            - 37 -
  2381.  
  2382.  
  2383. 3.65.  watch
  2384.  
  2385. Displays the current software stopwatch values, with min and  max
  2386. readings  for  each. This facility allows a programmer to measure
  2387. the execution time of critical sections of code with  microsecond
  2388. resolution.   This  command  is supported only on the IBM PC, and
  2389. the meaning of each stopwatch value depends on  where  the  calls
  2390. have  been  inserted  for test purposes; the distribution copy of
  2391. net.exe usually has no stopwatch calls.
  2392.  
  2393. 3.66.  ?
  2394.  
  2395. Same as the help command.
  2396.  
  2397. 4.  Attach Commands
  2398.  
  2399. This chapter details the attach commands for the various hardware
  2400. interface  drivers.  Not  all  of these drivers may be configured
  2401. into every net.exe binary; a list of the available types  may  be
  2402. obtained by entering the command attach ?.
  2403.  
  2404. Some parameters are accepted by several drivers. They are:
  2405.  
  2406. 4.0.1.  <bufsize>
  2407.  
  2408. For asynchronous devices (eg. COM ports operating in SLIP or  NRS
  2409. mode)  this  parameter  specifies the size of the receiver's ring
  2410. buffer.  It should be large enough to hold incoming data at  full
  2411. line  speed  for  the longest time that the system may be busy in
  2412. MS-DOS or the BIOS doing a slow I/O operation (eg.  to  a  floppy
  2413. disk). A kilobyte is usually more than sufficient.
  2414.  
  2415. For synchronous devices (eg. the scc, hs, pc100,  hapn  and  drsi
  2416. interfaces  operating in HDLC mode), the bufsize parameter speci-
  2417. fies the largest packet that may be received  on  the  interface.
  2418. This should be set by mutual agreement among stations sharing the
  2419. channel. For standard AX.25 with a maximum I-frame data  size  of
  2420. 256  bytes, a value of 325 should provide an adequate safety mar-
  2421. gin. On higher speed channels (eg. 56kb/s) larger values (eg.  2K
  2422. bytes)  will provide much better performance and allow full-sized
  2423. Ethernet packets to be carried without fragmentation.
  2424.  
  2425. 4.0.2.  <ioaddr>
  2426.  
  2427. The base address of the interface's control registers, in hex.
  2428.  
  2429. 4.0.3.  <vector>
  2430.  
  2431. The interface's hardware interrupt (IRQ) vector, in hex.
  2432.  
  2433. 4.0.4.  <iface>
  2434.  
  2435. The name (an arbitrary character string) to be assigned  to  this
  2436. interface.  It  is used to refer to the interface in ifconfig and
  2437.  
  2438.  
  2439.  
  2440.                         June 7, 1991
  2441.  
  2442.  
  2443.  
  2444.  
  2445.  
  2446.                            - 38 -
  2447.  
  2448.  
  2449. route commands and in trace output.
  2450.  
  2451. 4.0.5.  <mtu>
  2452.  
  2453. The Maximum Transmission Unit size, in bytes.   Datagrams  larger
  2454. than  this  limit will be fragmented at the IP layer into smaller
  2455. pieces. For AX.25 UI frames, this limits the size of the informa-
  2456. tion field.  For AX.25 I frames, however, the ax25 paclen parame-
  2457. ter is also relevant.  If  the  datagram  or  fragment  is  still
  2458. larger  than paclen, it is also fragmented at the AX.25 level (as
  2459. opposed to the IP level)  before  transmission.   (See  the  ax25
  2460. paclen command for further information).
  2461.  
  2462. 4.0.6.  <speed>
  2463.  
  2464. The speed in bits per second (eg. 2400).
  2465.  
  2466. 4.1.  attach 3c500 <ioaddr> <vector> arpa  <iface>  <qlen>  <mtu>
  2467. [<ip_addr>]
  2468.  
  2469. Attach a 3Com 3C501 Ethernet  interface.   qlen  is  the  maximum
  2470. allowable transmit queue length.  If the ip_addr parameter is not
  2471. given, the value associated with a prior ip address command  will
  2472. be used.
  2473.  
  2474. The use of this driver is not recommended; use the packet  driver
  2475. interface with the loadable 3C501 packet driver instead.
  2476.  
  2477. 4.2.  attach asy <ioaddr> <vector>  ax25  |  nrs  |  ppp  |  slip
  2478. <iface> <bufsize> <mtu> <speed> [<crv>]
  2479.  
  2480. Attach a standard PC "com port" (asynchronous serial port), using
  2481. the  National 8250 or 16550A chip.  Standard values on the IBM PC
  2482. and clones for ioaddr and vector are 0x3f8 and 4  for  COM1,  and
  2483. 0x2f8 and 3 for COM2.  If the port uses a 16550A chip, it will be
  2484. detected automatically and the FIFOs enabled.
  2485.  
  2486. 4.2.1.  ax25
  2487.  
  2488. Similar to slip, except that an AX.25 header and a KISS TNC  con-
  2489. trol  header  are  added to the front of the datagram before SLIP
  2490. encoding.  Either UI (connectionless) or I  (connection-oriented)
  2491. AX.25 frames can be used; see the mode command for details.
  2492.  
  2493. 4.2.2.  nrs
  2494.  
  2495. Use the NET/ROM asynchronous framing technique for  communication
  2496. with a local NET/ROM TNC.
  2497.  
  2498. 4.2.3.  ppp
  2499.  
  2500. Point-to-Point-Protocol.  Encapsulates datagrams in an  HDLC-like
  2501. frame.   This  is a new Internet standard for point-to-point com-
  2502. munication, compatible with CCITT standards.
  2503.  
  2504.  
  2505.  
  2506.                         June 7, 1991
  2507.  
  2508.  
  2509.  
  2510.  
  2511.  
  2512.                            - 39 -
  2513.  
  2514.  
  2515. 4.2.4.  slip
  2516.  
  2517. Serial  Line  Internet  Protocol.   Encapsulates   IP   datagrams
  2518. directly in SLIP frames without a link header. This is for opera-
  2519. tion on point-to-point lines and is compatible with  4.2BSD  UNIX
  2520. SLIP.
  2521.  
  2522. 4.2.5.  <crv>
  2523.  
  2524. The optional flags are a string of characters  "crv":  c  enables
  2525. RTS/CTS  detection, r enables RLSD (Carrier Detect) physical line
  2526. sensing, v enables Van Jacobson TCP/IP Header Compression, and is
  2527. valid only for SLIP.
  2528.  
  2529. 4.3.  attach drsi <ioaddr> <vector> ax25 <iface> <bufsize>  <mtu>
  2530. <ch_a_speed> <ch_b_speed>
  2531.  
  2532. N6TTO driver for the Digital Radio Systems PCPA 8530 card.  Since
  2533. there are two channels on the board, two interfaces are attached.
  2534. They will be named iface with 'a' and 'b' appended.   bufsize  is
  2535. the  receiver  buffer  size  in bytes; it must be larger than the
  2536. largest frame to be received.  ch_a_speed and ch_b_speed are  the
  2537. speeds, in bits/sec, for the A and B channels, respectively.
  2538.  
  2539. 4.4.  attach eagle <ioaddr> <vector> ax25 <iface> <bufsize> <mtu>
  2540. <speed>
  2541.  
  2542. WA3CVG/NG6Q driver for the Eagle Computer card (Zilog 8530).
  2543.  
  2544. 4.5.  attach hapn <ioaddr> <vector> ax25 <iface> <bufsize>  <mtu>
  2545. csma | full
  2546.  
  2547. KE3Z driver for  the  Hamilton  Amateur  Packet  Network  adapter
  2548. (Intel  8273).   The  csma | full parameter specifies whether the
  2549. port should operate in carrier sense multiple access (CSMA)  mode
  2550. or in full duplex.
  2551.  
  2552. 4.6.  attach hs <ioaddr> <vector> ax25  <iface>  <bufsize>  <mtu>
  2553. <keyup_delay> <p>
  2554.  
  2555. Attach a DRSI PCPA or Eagle Computer interface card using a  spe-
  2556. cial  "high speed" 8530 driver.  This driver uses busy-wait loops
  2557. to send and receive each byte instead of  interrupts,  making  it
  2558. usable  with  high speed modems (such as the WA4DSY 56kb/s modem)
  2559. on slow systems.  This does have the side  effect  of  "freezing"
  2560. the  system whenever the modem transmitter or receiver is active.
  2561. This driver can operate only in CSMA mode, and it is  recommended
  2562. that  no  other interfaces requiring small interrupt latencies be
  2563. attached to the same machine.
  2564.  
  2565. The keyup_delay parameter specifies the transmitter  keyup  delay
  2566. in  milliseconds.  The  p  value  specifies  the transmitter per-
  2567. sistence value in the range 1-255; the corresponding slot time is
  2568. fixed at one hardware clock tick, about 55 ms on the PC.
  2569.  
  2570.  
  2571.  
  2572.                         June 7, 1991
  2573.  
  2574.  
  2575.  
  2576.  
  2577.  
  2578.                            - 40 -
  2579.  
  2580.  
  2581. As with the other 8530 drivers, this driver actually attaches two
  2582. interfaces, one for each 8530 channel.
  2583.  
  2584. 4.7.  attach packet <intvec> <iface> <txqlen> <mtu>
  2585.  
  2586. Attach a  separate  software  "packet  driver"  meeting  the  FTP
  2587. Software,  Inc, Software Packet Driver specification.  The driver
  2588. must have already been installed as a TSR (e.g., by invocation in
  2589. autoexec.bat).   Packet  drivers  in  the Ethernet, ARCNET, SLIP,
  2590. SLFP, and KISS/AX25 classes are supported.
  2591.  
  2592. intvec is the software interrupt vector used for communication to
  2593. the  packet  driver,  and txqlen is the maximum number of packets
  2594. that will be allowed on the transmit queue.
  2595.  
  2596. 4.8.  attach  pc100  <ioaddr>  <vector>  ax25  <iface>  <bufsize>
  2597. <speed>
  2598.  
  2599. Driver for the PACCOMM PC-100  (Zilog  8530)  card.   Only  AX.25
  2600. operation is supported.
  2601.  
  2602. 4.9.  attach scc <devices> init <addr>  <spacing>  <Aoff>  <Boff>
  2603. <Dataoff> <intack> <vec> [p|r]<clock> [<hdwe>] [<param>]
  2604.  
  2605. PE1CHL driver to initialize a generic SCC (8530) interface  board
  2606. prior to actually attaching it. The parameters are as follows:
  2607.  
  2608. 4.9.1.  <devices>
  2609.  
  2610. The number of SCC chips to support.
  2611.  
  2612. 4.9.2.  <addr>
  2613.  
  2614. The base address of the first SCC chip (hex).
  2615.  
  2616. 4.9.3.  <spacing>
  2617.  
  2618. The spacing between the SCC chip base addresses.
  2619.  
  2620. 4.9.4.  <Aoff>
  2621.  
  2622. The offset from a chip's base address to its  channel  A  control
  2623. register.
  2624.  
  2625. 4.9.5.  <Boff>
  2626.  
  2627. The offset from a chip's base address to its  channel  B  control
  2628. register.
  2629.  
  2630. 4.9.6.  <Dataoff>
  2631.  
  2632. The offset from each  channel's  control  register  to  its  data
  2633. register.
  2634.  
  2635.  
  2636.  
  2637.  
  2638.                         June 7, 1991
  2639.  
  2640.  
  2641.  
  2642.  
  2643.  
  2644.                            - 41 -
  2645.  
  2646.  
  2647. 4.9.7.  <intack>
  2648.  
  2649. The address of the INTACK/Read Vector port. If none, specify 0 to
  2650. read from RR3A/RR2B.
  2651.  
  2652. 4.9.8.  <vec>
  2653.  
  2654. The CPU interrupt vector for all connected SCCs.
  2655.  
  2656. 4.9.9.  <clock>
  2657.  
  2658. The clock frequency (PCLK/RTxC) of all  SCCs  in  hertz.   Prefix
  2659. with 'p' for PCLK, 'r' for RTxC clock (for baudrate gen).
  2660.  
  2661. 4.9.10.  <hdwe>
  2662.  
  2663. Optional hardware type. The following values are  currently  sup-
  2664. ported:  1  -  Eagle card, 2 - PACCOMM PC-100, 4 - PRIMUS-PC card
  2665. (DG9BL), 8 - DRSI PCPA card.
  2666.  
  2667. 4.9.11.  <param>
  2668.  
  2669. Optional extra parameter. At present, this is used only with  the
  2670. PC-100  and PRIMUS-PC cards to set the modem mode. The value 0x22
  2671. is used with the PC-100 and 0x2 is used with the PRIMUS-PC card.
  2672.  
  2673. The attach scc ... init command must be given before  the  inter-
  2674. faces are actually attached with the following command.
  2675.  
  2676. 4.10.  attach scc <chan> slip | kiss | nrs | ax25  <iface>  <mtu>
  2677. <speed> <bufsize> [<call>]
  2678.  
  2679. Attach an initialized SCC port to the system. The parameters  are
  2680. as follows:
  2681.  
  2682. 4.10.1.  <chan>
  2683.  
  2684. The SCC channel number to attach, 0 or 1 for the first  chip's  A
  2685. or B port, 2 or 3 for the second chip's A or B port, etc.
  2686.  
  2687. 4.10.2.  slip | kiss | nrs | ax25
  2688.  
  2689. The operating mode of the  interface.  slip,  kiss  and  nrs  all
  2690. operate   the   port  hardware  in  asynchronous  mode;  slip  is
  2691. Internet-standard serial line IP mode, kiss generates SLIP frames
  2692. containing  KISS  TNC  commands  and  AX.25  packets and nrs uses
  2693. NET/ROM local serial link framing conventions  to  carry  NET/ROM
  2694. packets.  Selecting ax25 mode puts the interface into synchronous
  2695. HDLC mode that is suitable for direct connection to a half duplex
  2696. radio modem.
  2697.  
  2698. 4.10.3.  <speed>
  2699.  
  2700. The interface speed in bits per second (eg. 1200).   Prefix  with
  2701.  
  2702.  
  2703.  
  2704.                         June 7, 1991
  2705.  
  2706.  
  2707.  
  2708.  
  2709.  
  2710.                            - 42 -
  2711.  
  2712.  
  2713. 'd'  when  an  external  divider  is available to generate the TX
  2714. clock. When the clock source is PCLK, this can be a  /32  divider
  2715. between  TRxC  and  RTxC.  When the clock is at RTxC, the TX rate
  2716. must be supplied at TRxC. This is needed  only  for  full  duplex
  2717. synchronous  operation.  When  this  arg  is  given as 'ext', the
  2718. transmit and receive clocks are external, and the  internal  baud
  2719. rate generator (BRG) and digital phase locked loop (DPLL) are not
  2720. used.
  2721.  
  2722. 4.11.  Attach Examples
  2723.  
  2724. Here are some examples of the attach command:
  2725.  
  2726.  
  2727. # Attach a 3Com Ethernet controller using the standard 3Com address and
  2728. # vector (i.e., as it comes out of the box) to use ARPA-standard encapsulation.
  2729. # The receive queue is limited to 5 packets, and outgoing packets larger
  2730. # than 1500 bytes will be fragmented
  2731. attach 3c500 0x300 3 arpa ec0 5 1500
  2732.  
  2733. # Attach the PC asynch card normally known as "com1" (the first controller)
  2734. # to operate in point-to-point slip mode at 9600 baud, calling it "sl0".
  2735. # A 1024 byte receiver ring buffer is allocated. Outgoing packets larger
  2736. # than 256 bytes are fragmented.
  2737. attach asy 0x3f8 4 slip sl0 1024 256 9600
  2738.  
  2739. # Attach the secondary PC asynch card ("com2") to operate in AX.25 mode
  2740. # with an MTU of 576 bytes at 9600 baud with a KISS TNC, calling it "ax0".
  2741. # By default, IP datagrams are sent in UI frames
  2742. attach asy 0x2f8 3 ax25 ax0 1024 576 9600
  2743.  
  2744. # Attach the packet driver loaded at interrupt 0x7e
  2745. # The packet driver is for an Ethernet interface
  2746. attach packet 0x7e ethernet 8 1500
  2747.  
  2748.  
  2749.  
  2750. 5.  FTP Subcommands
  2751.  
  2752. During converse mode with an FTP server, everything typed on  the
  2753. console  is  first  examined to see if it is a locally-known com-
  2754. mand. If not, the line is passed intact to the remote  server  on
  2755. the control channel. If it is one of the following commands, how-
  2756. ever, it is executed locally. (Note that this generally  involves
  2757. other  commands  being  sent  to the remote server on the control
  2758. channel.)
  2759.  
  2760. 5.1.  dir [<file> | <directory> [<local file>]]
  2761.  
  2762. Without arguments, dir requests that a full directory listing  of
  2763. the  remote  server's  current directory be sent to the terminal.
  2764. If one argument is given, this is passed along in the  LIST  com-
  2765. mand;  this  can be a specific file or subdirectory that is mean-
  2766. ingful to the remote file system. If two arguments are given, the
  2767.  
  2768.  
  2769.  
  2770.                         June 7, 1991
  2771.  
  2772.  
  2773.  
  2774.  
  2775.  
  2776.                            - 43 -
  2777.  
  2778.  
  2779. second  is taken as the local file into which the directory list-
  2780. ing should be put (instead of being sent to  the  console).   The
  2781. PORT command is used before the LIST command is sent.
  2782.  
  2783. 5.2.  get <remote file> [<local file>]
  2784.  
  2785. Asks the remote server to send the file specified  in  the  first
  2786. argument.  The second argument, if given, will be the name of the
  2787. file on the local machine; otherwise it will have the  same  name
  2788. as on the remote machine.  The PORT and RETR commands are sent on
  2789. the control channel.
  2790.  
  2791. 5.3.  hash
  2792.  
  2793. A synonym for the verbose 3 command.
  2794.  
  2795. 5.4.  ls [<file> | <directory> [<local file>]]
  2796.  
  2797. ls is identical to the dir command except that the "NLST" command
  2798. is sent to the server instead of the "LIST" command. This results
  2799. in an abbreviated directory listing, i.e., one showing  only  the
  2800. file names themselves without any other information.
  2801.  
  2802. 5.5.  mget <file> [<file> ...]
  2803.  
  2804. Fetch a collection of files  from  the  server.  File  names  may
  2805. include  wild  card  characters;  they  will  be  interpreted and
  2806. expanded into a list of files by the remote system using the NLST
  2807. command.  The  files  will have the same name on the local system
  2808. that they had on the server.
  2809.  
  2810. 5.6.  mkdir <remote directory>
  2811.  
  2812. Creates a directory on the remote machine.
  2813.  
  2814. 5.7.  mput <file> [<file> ...]
  2815.  
  2816. Send a collection of files to the server. File names may  include
  2817. wild  card  characters; they will be expanded locally into a list
  2818. of files to be sent. The files will have the  same  name  on  the
  2819. server as on the local system.
  2820.  
  2821. 5.8.  put <local file> [<remote file>]
  2822.  
  2823. Asks the remote server to accept data, creating the file named in
  2824. the  first  argument.  The second argument, if given, will be the
  2825. name of the file on the remote machine; otherwise  it  will  have
  2826. the  same  name  as on the local machine.  The PORT and STOR com-
  2827. mands are sent on the control channel.
  2828.  
  2829. 5.9.  rmdir <remote directory>
  2830.  
  2831. Deletes a directory on the remote machine.
  2832.  
  2833.  
  2834.  
  2835.  
  2836.                         June 7, 1991
  2837.  
  2838.  
  2839.  
  2840.  
  2841.  
  2842.                            - 44 -
  2843.  
  2844.  
  2845. 5.10.  type [a | i | l <bytesize>]
  2846.  
  2847. Tells both the local client and remote server the  type  of  file
  2848. that is to be transferred.  The default is 'a', which means ASCII
  2849. (i.e., a text file).  Type 'i' means  image,  i.e.,  binary.   In
  2850. ASCII  mode,  files  are  sent as varying length lines of text in
  2851. ASCII separated by cr/lf sequences; in IMAGE mode, files are sent
  2852. exactly  as they appear in the file system.  ASCII mode should be
  2853. used whenever transferring text between dissimilar  systems  (eg.
  2854. UNIX  and  MS-DOS)  because of their different end-of-line and/or
  2855. end-of-file conventions.   When  exchanging  text  files  between
  2856. machines  of  the same type, either mode will work but IMAGE mode
  2857. is usually faster.  Naturally, when exchanging raw  binary  files
  2858. (executables,  compressed archives, etc) IMAGE mode must be used.
  2859. Type 'l' (logical byte size) is used when exchanging binary files
  2860. with  remote servers having oddball word sizes (eg. DECSYSTEM-10s
  2861. and 20s).  Locally it works exactly like IMAGE,  except  that  it
  2862. notifies  the  remote system how large the byte size is. bytesize
  2863. is typically 8.  The type command sets the  local  transfer  mode
  2864. and generates the TYPE command on the control channel.
  2865.  
  2866. 5.11.  verbose [0 | 1 | 2 | 3]
  2867.  
  2868. Set or display the level of message  output  in  file  transfers.
  2869. Verbose 0 gives the least output, and verbose 3 the most, as fol-
  2870. lows:
  2871.  
  2872. 0 - Display error messages only.
  2873. 1 - Display error messages plus a one-line summary after each transfer
  2874.     giving the name of the file, its size, and the transfer time and rate.
  2875. 2 - Display error and summary messages plus the progress messages generated
  2876.     by the remote FTP server. (This setting is the default.)
  2877. 3 - Display all messages. In addition, a "hash mark" (#) is displayed for
  2878.     every 1,000 bytes sent or received.
  2879.  
  2880. If a command is sent to the  remote  server  because  it  is  not
  2881. recognized  locally, the response is always displayed, regardless
  2882. of the setting of verbose.  This is necessary for  commands  like
  2883. pwd (display working directory), which would otherwise produce no
  2884. message at all if verbose were set to 0 or 1.
  2885.  
  2886. 6.  Dialer Subcommands
  2887.  
  2888. Each dialer command may (should) have a  different  dialer  file.
  2889. The  file resides in the configuration directory, as specified in
  2890. the Installation section (see chapter 1).  A typical dialer  file
  2891. might be:
  2892.  
  2893.  
  2894.  
  2895.  
  2896.  
  2897.  
  2898.  
  2899.  
  2900.  
  2901.  
  2902.                         June 7, 1991
  2903.  
  2904.  
  2905.  
  2906.  
  2907.  
  2908.                            - 45 -
  2909.  
  2910.  
  2911.  
  2912.         # Set the speed, and toggle DTR to ensure modem is in command mode.
  2913.         control down
  2914.         wait 3000
  2915.         speed 2400
  2916.         control up
  2917.         wait 3000
  2918.         # Dial, and wait for connection
  2919.         send "atdt555-1212"
  2920.         wait 45000 "CONNECT " speed
  2921.         wait 2000
  2922.         # PAD specific initialization
  2923.         send ""
  2924.         wait 15000 "Terminal ="
  2925.         send "ppp"
  2926.         wait 10000 "
  2927.  
  2928.  
  2929. 6.0.1.  control down | up
  2930.  
  2931. Control asy interface.  The down option drops DTR and  RTS.   The
  2932. up option asserts DTR and RTS.
  2933.  
  2934. 6.0.2.  send "string" [<milliseconds>]
  2935.  
  2936. This dialer command will write the specified string to the inter-
  2937. face.   The  string  quote marks are required, and the string may
  2938. not contain embedded control characters.  However, the standard C
  2939. string escape sequences are recognized (\0 should not be used).
  2940.  
  2941. There may be a wait of  <milliseconds>  between  each  character.
  2942. This  is  used  when  the dialer cannot process a string at modem
  2943. speeds.
  2944.  
  2945. 6.0.3.  speed [ 9600 | 4800 | 2400 | 1200 | 300 ]
  2946.  
  2947. This dialer command will set the speed of the interface to one of
  2948. the available speeds.  If the speed is missing, the speed will be
  2949. displayed in the dialer session window.
  2950.  
  2951. 6.0.4.  wait <milliseconds> [ "test string" ] [ speed ]
  2952.  
  2953. If only the time is specified, the dialer pauses for the  desired
  2954. number of milliseconds.
  2955.  
  2956. Otherwise, the dialer reads until the test string is detected  on
  2957. the  interface.  If the string is not detected within the desired
  2958. time, the autodialer will reset.   The  string  quote  marks  are
  2959. required, and the string may not contain embedded control charac-
  2960. ters.  However, the standard C string escape sequences are recog-
  2961. nized (\0 should not be used).
  2962.  
  2963. Finally, if the speed parameter is  specified,  the  dialer  will
  2964. continue  to  read characters until a non-digit is detected.  The
  2965.  
  2966.  
  2967.  
  2968.                         June 7, 1991
  2969.  
  2970.  
  2971.  
  2972.  
  2973.  
  2974.                            - 46 -
  2975.  
  2976.  
  2977. string read is converted to an  integer,  and  used  to  set  the
  2978. interface  speed.   If  the  trailing  non-digit  is not detected
  2979. within the desired time, or the integer  value  is  not  a  valid
  2980. speed,  the  autodialer  will reset.  The speed feature is useful
  2981. for reading back the CONNECT <speed> message generated by  Hayes-
  2982. compatible modems.
  2983.  
  2984. 7.  The /ftpusers File
  2985.  
  2986. Since MS-DOS is a single-user operating system (some might say it
  2987. is  a glorified bootstrap loader), it provides no access control;
  2988. all files can be read, written or deleted by the local user.   It
  2989. is  usually  undesirable  to give such open access to a system to
  2990. remote network users.  Net.exe therefore provides its own  access
  2991. control mechanisms.
  2992.  
  2993. The file /ftpusers controls remote FTP and mailbox  access.   The
  2994. FTP  default  is  no access; if this file does not exist, the FTP
  2995. server will be unusable.  A remote user must first  "log  in"  to
  2996. the  system  with the USER and PASS commands, giving a valid name
  2997. and password listed in /ftpusers, before he or she  can  transfer
  2998. files.
  2999.  
  3000. Each entry in /ftpusers consists of a single line of the form
  3001.  
  3002. username password /path permissions
  3003.  
  3004.  
  3005. There must be exactly four fields, and there must be exactly  one
  3006. space  between  each field.  Comments may be added after the last
  3007. field. Comment lines begin with '#' in column one.
  3008.  
  3009. username is the user's login name.
  3010.  
  3011. password is the required password.  Note that this  is  in  plain
  3012. text;  therefore  it is not a good idea to give general read per-
  3013. mission to the root directory.   A  password  of  '*'  (a  single
  3014. asterisk) means that any password is acceptable.
  3015.  
  3016. /path is the allowable prefix on accessible  files.   Before  any
  3017. file  or directory operation, the current directory and the user-
  3018. specified file name are joined to form an absolute path  name  in
  3019. "canonical"  form  (i.e.,  a full path name starting at the root,
  3020. with "./" and "../" references, as well as redundant /'s,  recog-
  3021. nized and removed). The result MUST begin with the allowable path
  3022. prefix; if not, the operation is denied.  This field must  always
  3023. begin with a "/", i.e., at the root directory.
  3024.  
  3025. permissions is a decimal number  granting  permission  for  read,
  3026. create  and write operations.  If the low order bit (0x1) is set,
  3027. the user is allowed to read a file subject to the path name  pre-
  3028. fix  restriction.   If  the  next  bit  (0x2) is set, the user is
  3029. allowed to create a new file if it does not overwrite an existing
  3030. file.   If  the  third  bit  (0x4) is set, the user is allowed to
  3031.  
  3032.  
  3033.  
  3034.                         June 7, 1991
  3035.  
  3036.  
  3037.  
  3038.  
  3039.  
  3040.                            - 47 -
  3041.  
  3042.  
  3043. write a file even if it overwrites an existing file, and in addi-
  3044. tion he may delete files.  Again, all operations are allowed sub-
  3045. ject to the path name prefix  restrictions.  Permissions  may  be
  3046. combined  by  adding  bits,  for example, 0x3 (= 0x2 + 0x1) means
  3047. that the user is  given  read  and  create  permission,  but  not
  3048. overwrite/delete permission.
  3049.  
  3050. For example, suppose /ftpusers on machine  pc.ka9q.ampr.org  con-
  3051. tains the line
  3052.  
  3053. friendly test /testdir 7
  3054.  
  3055.  
  3056. A session using this account would look like this:
  3057.  
  3058. net> ftp pc.ka9q.ampr.org
  3059. Resolving pc.ka9q.ampr.org... Trying 128.96.160.1...
  3060. FTP session 1 connected to pc.ka9q.ampr.org
  3061. 220 pc.ka9q.ampr.org FTP version 900418 ready at Mon May 7 16:27:18 1990
  3062. Enter user name: friendly
  3063. 331 Enter PASS command
  3064. Password: test [not echoed]
  3065. 230 Logged in
  3066. ftp>
  3067.  
  3068.  
  3069. The user now has read, write, overwrite and delete privileges for
  3070. any file under /testdir; he may not access any other files.
  3071.  
  3072. Here are some more sample entries in /ftpusers:
  3073.  
  3074. karn foobar / 7         # User "karn" with password "foobar" may read,
  3075.                         # write, overwrite and delete any file on the
  3076.                         # system.
  3077.  
  3078. guest bletch /g/bogus 3 # User "guest" with password "bletch" may read
  3079.                         # any file under /g/bogus and its subdirectories,
  3080.                         # and may create a new file as long as it does
  3081.                         # not overwrite an existing file. He may NOT
  3082.                         # delete any files.
  3083.  
  3084. anonymous * /public 1   # User "anonymous" (any password) may read files
  3085.                         # under /public and its subdirectories; he may
  3086.                         # not create, overwrite or delete any files.
  3087.  
  3088.  
  3089. This last entry is the standard convention for keeping a  reposi-
  3090. tory  of public files; in particular, the username "anonymous" is
  3091. an established ARPA convention.
  3092.  
  3093. 8.  The domain.txt File
  3094.  
  3095. Net.exe translates domain names (eg.  "pc.ka9q.ampr.org")  to  IP
  3096. addresses  (eg.  128.96.160.3)  through  the  use  of an Internet
  3097.  
  3098.  
  3099.  
  3100.                         June 7, 1991
  3101.  
  3102.  
  3103.  
  3104.  
  3105.  
  3106.                            - 48 -
  3107.  
  3108.  
  3109. Domain Name resolver and a local "cache" file, domain.txt.  When-
  3110. ever  the  user  specifies  a  domain  name,  the  local cache is
  3111. searched for the desired entry.  If it is present, it is used; if
  3112. not,  and  if domain name server(s) have been configured, a query
  3113. is sent over the network to the current server.   If  the  server
  3114. responds,  the  answer is added to the domain.txt file for future
  3115. use.  If the server does not respond, any additional  servers  on
  3116. the  list  are tried in a round-robin fashion until one responds,
  3117. or the retry limit is reached (see the domain retry command).  If
  3118. domain.txt  does  not  contain the desired entry and there are no
  3119. configured domain name  servers,  then  the  request  immediately
  3120. fails.
  3121.  
  3122. If a domain name server is available, and if  all  references  to
  3123. host-ids  in  your  /autoexec.net  file are in IP address format,
  3124. then it is possible to start with a completely  empty  domain.txt
  3125. file and have net.exe build it for you.  However, you may wish to
  3126. add your own entries to domain.txt, either because you prefer  to
  3127. use symbolic domain names in your /autoexec.net file or you don't
  3128. have access to a domain server and you need to create entries for
  3129. all of the hosts you may wish to access.
  3130.  
  3131. Each entry takes one line, and the fields are  separated  by  any
  3132. combination of tabs or spaces.  For example:
  3133.  
  3134. pc.ka9q.ampr.org.       IN      A       128.96.160.3
  3135.  
  3136. IN is the class of the record.  It means Internet, and it will be
  3137. found  in all entries.  A is the type of the record, and it means
  3138. that this is an address  record.   Domain  name  pc.ka9q.ampr.org
  3139. therefore has Internet address 128.96.160.3.
  3140.  
  3141. Another possible entry is the CNAME (Canonical Name) record.  For
  3142. example:
  3143.  
  3144. ka9q.ampr.org.          IN      CNAME   pc.ka9q.ampr.org.
  3145.  
  3146. This says that domain name "ka9q.ampr.org" is actually  an  alias
  3147. for   the   system  with  (primary,  or  canonical)  domain  name
  3148. "pc.ka9q.ampr.org." When a domain name having a CNAME  record  is
  3149. given  to net.exe, the system automatically follows the reference
  3150. to the canonical name and returns the IP address associated  with
  3151. that entry.
  3152.  
  3153. Entries added automatically by net.exe will  have  an  additional
  3154. field  between  the  domain  name  and the class (IN) field.  For
  3155. example:
  3156.  
  3157. pc.ka9q.ampr.org.       3600    IN      A       128.96.160.3
  3158.  
  3159. This is the time-to-live value, in seconds, associated  with  the
  3160. record  received from the server. Clients (such as net.exe) cach-
  3161. ing these records are supposed to delete them after the  time-to-
  3162. live  interval has expired, allowing for the possibility that the
  3163.  
  3164.  
  3165.  
  3166.                         June 7, 1991
  3167.  
  3168.  
  3169.  
  3170.  
  3171.  
  3172.                            - 49 -
  3173.  
  3174.  
  3175. information in the record may become out of date.
  3176.  
  3177. This implementation of net.exe will decrement the  TTL  to  zero,
  3178. but will not delete the record unless the "clean" flag is on (see
  3179. the domain cache clean command).  When a  remote  server  is  not
  3180. available, the old entry will be used.
  3181.  
  3182. When the TTL value is missing (as in  the  examples  above),  the
  3183. record  will  never  expire,  and must be managed by hand.  Since
  3184. domain.txt is a plain text file, it may be easily edited  by  the
  3185. user to add, change or delete records.
  3186.  
  3187. Additional types of records include MX (mail exchanger), NS (name
  3188. server)  and  SOA  (start  of authority) may appear in domain.txt
  3189. from remote server  responses.  Only  MX  is  currently  used  by
  3190. net.exe  (in  the  mailbox).  The  others are retained for future
  3191. development (such as the incorporation of a smarter resolver or a
  3192. full-blown domain name server).
  3193.  
  3194. 9.  Setting Bufsize, Paclen, Maxframe, MTU, MSS and Window
  3195.  
  3196. Many net.exe users are confused by these parameters  and  do  not
  3197. know  how  to  set  them properly. This chapter will first review
  3198. these parameters and then discuss how to choose values for  them.
  3199. Special  emphasis  is given to avoiding interoperability problems
  3200. that may appear when communicating with  non-net.exe  implementa-
  3201. tions of AX.25.
  3202.  
  3203. 9.1.  Hardware Parameters
  3204.  
  3205.  
  3206. 9.1.1.  Bufsize
  3207.  
  3208. This parameter is required by most  of  net.exe's  built-in  HDLC
  3209. drivers  (eg. those for the DRSI PCPA and the Paccomm PC-100). It
  3210. specifies the size  of  the  buffer  to  be  allocated  for  each
  3211. receiver  port.  HDLC  frames  larger  than  this value cannot be
  3212. received.
  3213.  
  3214. There is no default bufsize; it must be specified in  the  attach
  3215. command for the interface.
  3216.  
  3217. 9.2.  AX25 Parameters
  3218.  
  3219. 9.2.1.  Paclen
  3220.  
  3221. Paclen limits the size of the data field  in  an  AX.25  I-frame.
  3222. This  value  does  not include the AX.25 protocol header (source,
  3223. destination and digipeater addresses).
  3224.  
  3225. Since unconnected-mode (datagram)  AX.25  uses  UI  frames,  this
  3226. parameter has no effect in unconnected mode.
  3227.  
  3228. The default value of paclen is 256 bytes.
  3229.  
  3230.  
  3231.  
  3232.                         June 7, 1991
  3233.  
  3234.  
  3235.  
  3236.  
  3237.  
  3238.                            - 50 -
  3239.  
  3240.  
  3241. 9.2.2.  Maxframe
  3242.  
  3243. This parameter controls the number of I-frames that  net.exe  may
  3244. send  on  an AX.25 connection before it must stop and wait for an
  3245. acknowledgement.  Since the AX.25/LAPB sequence number field is 3
  3246. bits wide, this number cannot be larger than 7.
  3247.  
  3248. Since unconnected-mode (datagram) AX.25 uses UI  frames  that  do
  3249. not  have  sequence  numbers,  this  parameter  does not apply to
  3250. unconnected mode.
  3251.  
  3252. The default value of maxframe in net.exe is 1.
  3253.  
  3254. 9.3.  IP and TCP Parameters
  3255.  
  3256. 9.3.1.  MTU
  3257.  
  3258. The MTU (Maximum Transmission Unit)  is  an  interface  parameter
  3259. that  limits the size of the largest IP datagram that it may han-
  3260. dle.  IP datagrams routed to an interface that  are  larger  than
  3261. its MTU are each split into two or more fragments.  Each fragment
  3262. has its own IP header and is handled by the network as if it were
  3263. a distinct IP datagram, but when it arrives at the destination it
  3264. is held by the IP layer until all of the other fragments  belong-
  3265. ing to the original datagram have arrived. Then they are reassem-
  3266. bled back into the complete, original IP  datagram.  The  minimum
  3267. acceptable  interface MTU is 28 bytes: 20 bytes for the IP (frag-
  3268. ment) header, plus 8 bytes of data.
  3269.  
  3270. There is no default MTU in net.exe; it must be explicitly  speci-
  3271. fied for each interface as part of the attach command.
  3272.  
  3273. 9.3.2.  MSS
  3274.  
  3275. MSS (Maximum Segment Size) is a TCP-level parameter  that  limits
  3276. the  amount of data that the remote TCP will send in a single TCP
  3277. packet. MSS values are exchanged in the SYN (connection  request)
  3278. packets that open a TCP connection. In the net.exe implementation
  3279. of TCP, the MSS actually used by TCP is further reduced in  order
  3280. to  avoid  fragmentation  at the local IP interface. That is, the
  3281. local TCP asks IP for the MTU of the interface that will be  used
  3282. to reach the destination. It then subtracts 40 from the MTU value
  3283. to allow for the overhead of the  TCP  and  IP  headers.  If  the
  3284. result  is  less than the MSS received from the remote TCP, it is
  3285. used instead.
  3286.  
  3287. The default value of MSS is 512 bytes.
  3288.  
  3289. 9.3.3.  Window
  3290.  
  3291. This is a TCP-level parameter that controls  how  much  data  the
  3292. local  TCP  will allow the remote TCP to send before it must stop
  3293. and wait for an acknowledgement. The actual window value used  by
  3294. TCP  when  deciding  how much more data to send is referred to as
  3295.  
  3296.  
  3297.  
  3298.                         June 7, 1991
  3299.  
  3300.  
  3301.  
  3302.  
  3303.  
  3304.                            - 51 -
  3305.  
  3306.  
  3307. the effective window.  This is the smaller  of  two  values:  the
  3308. window advertised by the remote TCP minus the unacknowledged data
  3309. in flight, and the congestion window, an  automatically  computed
  3310. time-varying estimate of how much data the network can handle.
  3311.  
  3312. The default value of Window is 2048 bytes.
  3313.  
  3314. 9.4.  Discussion
  3315.  
  3316.  
  3317. 9.4.1.  IP Fragmentation vs AX.25 Segmentation
  3318.  
  3319. IP-level fragmentation often makes it  possible  to  interconnect
  3320. two  dissimilar  networks, but it is best avoided whenever possi-
  3321. ble.  One reason is that when a single IP fragment is  lost,  all
  3322. other  fragments  belonging  to the same datagram are effectively
  3323. also lost and the entire datagram must be  retransmitted  by  the
  3324. source.   Even  without loss, fragments require the allocation of
  3325. temporary buffer memory at the destination, and it is never  easy
  3326. to decide how long to wait for missing fragments before giving up
  3327. and discarding those that have  already  arrived.   A  reassembly
  3328. timer  controls  this  process.  In net.exe it is (re)initialized
  3329. with the ip rtimer parameter (default 30 seconds)  whenever  pro-
  3330. gress is made in reassembling a datagram (i.e., a new fragment is
  3331. received).  It is not necessary that all of the fragments belong-
  3332. ing  to  a datagram arrive within a single timeout interval, only
  3333. that the interval between fragments be less than the timeout.
  3334.  
  3335. Most subnetworks that carry IP have MTUs of 576 bytes or more, so
  3336. interconnecting  them  with subnetworks having smaller values can
  3337. result in considerable fragmentation. For this reason, IP  imple-
  3338. mentors  working  with  links  or  subnets having unusually small
  3339. packet size limits are encouraged to use  transparent  fragmenta-
  3340. tion,  that  is, to devise schemes to break up large IP datagrams
  3341. into a sequence of link or subnet  frames  that  are  immediately
  3342. reassembled  on the other end of the link or subnet into the ori-
  3343. ginal, whole IP datagram without the use of  IP-level  fragmenta-
  3344. tion.  Such  a  scheme  is provided in AX.25 Version 2.1.  It can
  3345. break a large IP or NET/ROM datagram into  a  series  of  paclen-
  3346. sized  AX.25 segments (not to be confused with TCP segments), one
  3347. per AX.25 I-frame, for transmission and reassemble  them  into  a
  3348. single datagram at the other end of the link before handing it up
  3349. to the IP or NET/ROM  module.   Unfortunately,  the  segmentation
  3350. procedure  is a new feature in AX.25 and is not yet widely imple-
  3351. mented; in fact, net.exe is so far the only known implementation.
  3352. This  creates  some interoperability problems between net.exe and
  3353. non-net.exe nodes, in particular, standard  NET/ROM  nodes  being
  3354. used  to carry IP datagrams. This problem is discussed further in
  3355. the section on setting the MTU.
  3356.  
  3357. 9.4.2.  Setting paclen and bufsize
  3358.  
  3359. The more data you put into an AX.25  I  frame,  the  smaller  the
  3360. AX.25  headers  are in relation to the total frame size. In other
  3361.  
  3362.  
  3363.  
  3364.                         June 7, 1991
  3365.  
  3366.  
  3367.  
  3368.  
  3369.  
  3370.                            - 52 -
  3371.  
  3372.  
  3373. words, by increasing paclen, you lower the AX.25  protocol  over-
  3374. head. Also, large data packets reduce the overhead of keying up a
  3375. transmitter, and this can be  an  important  factor  with  higher
  3376. speed modems. On the other hand, large frames make bigger targets
  3377. for noise and interference. Each link has  an  optimum  value  of
  3378. paclen that is best discovered by experiment.
  3379.  
  3380. Another thing to remember when setting paclen is that  the  AX.25
  3381. version  2.0  specification  limits  it  to  256  bytes. Although
  3382. net.exe can handle much larger values, some other AX.25 implemen-
  3383. tations (including digipeaters) cannot and this may cause intero-
  3384. perability problems. Even net.exe may have trouble  with  certain
  3385. KISS  TNCs  because  of fixed-size buffers. The original KISS TNC
  3386. code for the TNC-2 by K3MC can handle frames limited in size only
  3387. by the RAM in the TNC, but some other KISS TNCs cannot.
  3388.  
  3389. Net.exe's built-in HDLC drivers (SCC, PC-100, DRSI, etc) allocate
  3390. receive  buffers according to the maximum expected frame size, so
  3391. it is important that these devices be configured with the correct
  3392. bufsize. To do this, you must know the size of the largest possi-
  3393. ble frame that can be received.  The  paclen  parameter  controls
  3394. only  the  size of the data field in an I-frame and not the total
  3395. size of the frame as it appears on the air. The AX.25 spec allows
  3396. up  to  8 digipeaters, so the largest possible frame is (paclen +
  3397. 72) bytes. So you should make bufsize at least this large.
  3398.  
  3399. Another important consideration is that the more recent  versions
  3400. of  NOS  improve interrupt response by maintaining a special pool
  3401. of buffers for use by the receive routines.   These  buffers  are
  3402. configured  by  the  memory  nibufs and memory ibufsize commands.
  3403. ibufsize defaults to 2048 bytes. The setting of  ibufsize  limits
  3404. bufsize;  in fact, attempting to set a larger value may cause the
  3405. driver not to work at all. This situation can be detected by run-
  3406. ning  the  memory status command and looking for a non-zero count
  3407. of Ibuffail events, although these events can  also  occur  occa-
  3408. sionally during normal operation.
  3409.  
  3410. One of the drawbacks of AX.25 that there is no way for  one  sta-
  3411. tion  to tell another how large a packet it is willing to accept.
  3412. This requires the stations sharing a channel to agree  beforehand
  3413. on a maximum packet size.  TCP is different, as we shall see.
  3414.  
  3415. 9.4.3.  Setting Maxframe
  3416.  
  3417. For best performance on a  half-duplex  radio  channel,  maxframe
  3418. should always be set to 1. The reasons are explained in the paper
  3419. Link Level Protocols Revisited by  Brian  Lloyd  and  Phil  Karn,
  3420. which  appeared  in the proceedings of the ARRL 5th Computer Net-
  3421. working Conference in 1986.
  3422.  
  3423. 9.4.4.  Setting MTU
  3424.  
  3425. TCP/IP header overhead considerations similar  to  those  of  the
  3426. AX.25  layer  when  setting  paclen  apply  when choosing an MTU.
  3427.  
  3428.  
  3429.  
  3430.                         June 7, 1991
  3431.  
  3432.  
  3433.  
  3434.  
  3435.  
  3436.                            - 53 -
  3437.  
  3438.  
  3439. However, certain  subnetwork  types  supported  by  net.exe  have
  3440. well-established MTUs, and these should always be used unless you
  3441. know what you're doing: 1500 bytes for Ethernet,  and  508  bytes
  3442. for  ARCNET.   The  MTU  for PPP is automatically negotiated, and
  3443. defaults to 1500.  Other subnet types, including SLIP and  AX.25,
  3444. are not as well standardized.
  3445.  
  3446. SLIP has no official MTU, but the most common implementation (for
  3447. BSD  UNIX)  uses  an  MTU of 1006 bytes.  Although net.exe has no
  3448. hard wired limit on the size of a received SLIP  frame,  this  is
  3449. not true for other systems.  Interoperability problems may there-
  3450. fore result if larger MTUs are used in net.exe.
  3451.  
  3452. Choosing an MTU for an AX.25 interface is more complex. When  the
  3453. interface operates in datagram (UI-frame) mode, the paclen param-
  3454. eter does not apply. The MTU effectively becomes  the  paclen  of
  3455. the  link.   However, as mentioned earlier, large packets sent on
  3456. AX.25 connections are automatically segmented  into  I-frames  no
  3457. larger  than paclen bytes.  Unfortunately, as also mentioned ear-
  3458. lier, net.exe is so far the only known implementation of the  new
  3459. AX.25  segmentation procedure. This is fine as long as all of the
  3460. NET/ROM nodes along a path are running  net.exe,  but  since  the
  3461. main  reason net.exe supports NET/ROM is to allow use of existing
  3462. NET/ROM networks, this is unlikely.
  3463.  
  3464. So it is usually important to avoid AX.25 segmentation when  run-
  3465. ning  IP  over  NET/ROM.  The way to do this is to make sure that
  3466. packets larger than paclen are never handed to AX.25.  A  NET/ROM
  3467. transport  header  is  5  bytes long and a NET/ROM network header
  3468. takes 15 bytes, so 20 bytes must be added to the size  of  an  IP
  3469. datagram  when figuring the size of the AX.25 I-frame data field.
  3470. If paclen is 256, this leaves 236 bytes for the IP datagram. This
  3471. is  the default MTU of the netrom pseudo-interface, so as long as
  3472. paclen is at least 256 bytes, AX.25  segmentation  can't  happen.
  3473. But  if  smaller  values  of paclen are used, the netrom MTU must
  3474. also be reduced with the ifconfig command.
  3475.  
  3476. On the other hand, if you're running IP directly on top of AX.25,
  3477. chances  are  all  of  the  nodes are running net.exe and support
  3478. AX.25 segmentation.  In this case there is no reason not to use a
  3479. larger MTU and let AX.25 segmentation do its thing. If you choose
  3480. an MTU on the order of 1000-1500 bytes,  you  can  largely  avoid
  3481. IP-level fragmentation and reduce TCP/IP-level header overhead on
  3482. file transfers to a very low level.  And you are  still  free  to
  3483. pick whatever paclen value is appropriate for the link.
  3484.  
  3485. 9.4.5.  Setting MSS
  3486.  
  3487. The setting of this TCP-level parameter is somewhat less critical
  3488. than  the IP and AX.25 level parameters already discussed, mainly
  3489. because it is automatically lowered according to the MTU  of  the
  3490. local  interface  when a connection is created. Although this is,
  3491. strictly speaking, a protocol layering violation (TCP is not sup-
  3492. posed to have any knowledge of the workings of lower layers) this
  3493.  
  3494.  
  3495.  
  3496.                         June 7, 1991
  3497.  
  3498.  
  3499.  
  3500.  
  3501.  
  3502.                            - 54 -
  3503.  
  3504.  
  3505. technique does work well in practice.  However, it can be fooled;
  3506. for  example, if a routing change occurs after the connection has
  3507. been opened and the new local interface has a  smaller  MTU  than
  3508. the previous one, IP fragmentation may occur in the local system.
  3509.  
  3510. The only drawback to setting a large MSS is that it  might  cause
  3511. avoidable  fragmentation  at  some other point within the network
  3512. path if it includes a "bottleneck" subnet  with  an  MTU  smaller
  3513. than  that  of  the  local  interface.   (Unfortunately, there is
  3514. presently no way to know when this is the case.  There is ongoing
  3515. work  within  the  Internet  Engineering  Task  Force  on  a "MTU
  3516. Discovery" procedure to determine the largest datagram  that  may
  3517. be  sent  over  a given path without fragmentation, but it is not
  3518. yet complete.) Also, since the MSS you specify  is  sent  to  the
  3519. remote  system,  and  not all other TCPs do the MSS-lowering pro-
  3520. cedure yet, this might cause the remote  system  to  generate  IP
  3521. fragments unnecessarily.
  3522.  
  3523. On the other hand, a too-small MSS can result in  a  considerable
  3524. performance  loss,  especially  when operating over fast LANs and
  3525. networks that can handle larger packets. So the  best  value  for
  3526. MSS is probably 40 less than the largest MTU on your system, with
  3527. the 40-byte margin allowing for the TCP and IP headers. For exam-
  3528. ple,  if  you  have  a SLIP interface with a 1006 byte MTU and an
  3529. Ethernet interface with a 1500 byte MTU, set MSS to  1460  bytes.
  3530. This allows you to receive maximum-sized Ethernet packets, assum-
  3531. ing the path to your system does not have any bottleneck  subnets
  3532. with smaller MTUs.
  3533.  
  3534. 9.4.6.  Setting Window
  3535.  
  3536. A sliding window protocol like TCP cannot transfer more than  one
  3537. window's  worth  of  data  per  round trip time interval. So this
  3538. TCP-level parameter controls the ability of  the  remote  TCP  to
  3539. keep a long "pipe" full. That is, when operating over a path with
  3540. many hops, offering a large TCP window will help keep  all  those
  3541. hops busy when you're receiving data. On the other hand, offering
  3542. too large a window can congest the network if  it  cannot  buffer
  3543. all  that  data. Fortunately, new algorithms for dynamic control-
  3544. ling the effective TCP flow control window  have  been  developed
  3545. over  the  past  few  years and are now widely deployed.  Net.exe
  3546. includes them, and you can watch them  in  action  with  the  tcp
  3547. status  <tcb>  or  socket  <sockno>  commands.  Look at the cwind
  3548. (congestion window) value.
  3549.  
  3550. In most cases it is safe to set the TCP window to a small integer
  3551. multiple  of  the  MSS  (eg.  4 times), or larger if necessary to
  3552. fully utilize a high bandwidth*delay product path. One  thing  to
  3553. keep  in  mind, however, is that advertising a certain TCP window
  3554. value declares that the system has that much buffer space  avail-
  3555. able  for  incoming  data.  Net.exe does not actually preallocate
  3556. this space; it keeps it in a common pool and may well  "overbook"
  3557. it,  exploiting  the  fact that many TCP connections are idle for
  3558. long periods  and  gambling  that  most  applications  will  read
  3559.  
  3560.  
  3561.  
  3562.                         June 7, 1991
  3563.  
  3564.  
  3565.  
  3566.  
  3567.  
  3568.                            - 55 -
  3569.  
  3570.  
  3571. incoming  data  from  an active connection as soon as it arrives,
  3572. thereby quickly freeing the buffer memory.  However, it is possi-
  3573. ble  to  run  net.exe out of memory if excessive TCP window sizes
  3574. are advertised and either the applications go to  sleep  indefin-
  3575. itely (eg. suspended Telnet sessions) or a lot of out-of-sequence
  3576. data arrives.  It is wise to keep an eye on the amount of  avail-
  3577. able  memory  and  to  decrease the TCP window size (or limit the
  3578. number of simultaneous connections) if it gets too low.
  3579.  
  3580. Depending on the channel access method and link  level  protocol,
  3581. the  use  of  a  window setting that exceeds the MSS may cause an
  3582. increase in channel collisions. In particular, collisions between
  3583. data  packets  and  returning acknowledgements during a bulk file
  3584. transfer may become common. Although this is, strictly  speaking,
  3585. not TCP's fault, it is possible to work around the problem at the
  3586. TCP level by decreasing the window so that the protocol  operates
  3587. in  stop-and-wait  mode.  This is done by making the window value
  3588. equal to the MSS.
  3589.  
  3590. 9.5.  Summary
  3591.  
  3592. In most cases, the default values provided by net.exe for each of
  3593. these  parameters will work correctly and give reasonable perfor-
  3594. mance. Only in special circumstances such  as  operation  over  a
  3595. very  poor  link or experimentation with high speed modems should
  3596. it be necessary to change them.
  3597.  
  3598. 10.  Mail Forwarding
  3599.  
  3600. 10.1.  Intended audience
  3601.  
  3602. This section is intended for the NOS system operator desiring  to
  3603. enable  the  forwarding  of  mail  to other systems. They are NOT
  3604. intended as a user guide for the mail capabilities of NOS.
  3605.  
  3606. 10.2.  Background
  3607.  
  3608. This section of the NOS docs deals with the intricacies  of  mail
  3609. forwarding.  You  should  read  and understand this documentation
  3610. thoroughly before attempting to forward mail through your NOS box
  3611. to  the AX.25 BBS world, otherwise you might grossly misconfigure
  3612. your system and be the  unhappy  recipient  of  flames  from  BBS
  3613. sysops.
  3614.  
  3615. This section does NOT deal with the minutae of  the  mailbox  and
  3616. its  various  commands;  it  assumes that you understand concepts
  3617. such as user areas (both public and private) and how to list  and
  3618. send  mail. If you need help with these, please look elsewhere in
  3619. the NOS docs.
  3620.  
  3621. Apart from the usual domain.txt and  other  files  necessary  for
  3622. ordinary  functionality  of NOS, three files are important in the
  3623. mail forwarding process. These  are:  /spool/forward.bbs,  /alias
  3624. and  /spool/rewrite.  The contents of these will now be addressed
  3625.  
  3626.  
  3627.  
  3628.                         June 7, 1991
  3629.  
  3630.  
  3631.  
  3632.  
  3633.  
  3634.                            - 56 -
  3635.  
  3636.  
  3637. individually.
  3638.  
  3639. 10.3.  /spool/forward.bbs
  3640.  
  3641. This file describes the actions taken by  NOS  in  forwarding  to
  3642. AX.25  BBSes.  The  file contains a series of forwarding records,
  3643. each record being separated by a  line  containing  two  or  more
  3644. hyphens. The template for a forwarding record is:
  3645.  
  3646. BBS callsign
  3647. Connection route
  3648. Connection commands                <zero or more lines>
  3649. List of areas to be forwarded      <one per line>
  3650. ------------                       <end of record>
  3651.  
  3652. 10.4.  BBS callsign
  3653.  
  3654. This is simply the ordinary call of the  remote  BBS.  A  typical
  3655. (but not random!) entry might be simply the line:
  3656.  
  3657. sm0rgv
  3658.  
  3659. The callsign may be followed,  on  the  same  line,  by  a  comma
  3660. separated  list  of  valid  intervals  when forwarding is to take
  3661. place. Each valid interval is a four digit number: the first  two
  3662. digits are the beginning hour of the valid interval, the last two
  3663. digits are the final hour of the valid interval. For example,  if
  3664. the first line of a forwarding record looks like:
  3665.  
  3666. sm0rgv 0006,1414
  3667.  
  3668. then forwarding to sm0rgv will take place only during hours  num-
  3669. bered  00, 01, 02, 03, 04, 05, 06 and 14. Ticks of the mbox timer
  3670. outside of these times will not cause mail  to  be  forwarded  to
  3671. sm0rgv. The default interval for forwarding is 0023.
  3672.  
  3673. 10.5.  Connection route
  3674.  
  3675. This is the method by which communication is  to  be  established
  3676. with  the  remote BBS. The first token on the line is the type of
  3677. protocol to be used. This is one of ax25, netrom or tcp.  Follow-
  3678. ing  this  is  whatever  further  information the chosen protocol
  3679. requires to make the connection. An example connection route  for
  3680. a simple ax25 connection on interface ax0 is:
  3681.  
  3682. ax25 ax0 g3dlh
  3683.  
  3684.  
  3685. 10.6.  Connection commands
  3686.  
  3687. Connection commands may, optionally, follow the connection route.
  3688. These take the form of a full stop (period), followed by the com-
  3689. mand which will be transmitted once the connection defined in the
  3690. first line of the connection route is established.
  3691.  
  3692.  
  3693.  
  3694.                         June 7, 1991
  3695.  
  3696.  
  3697.  
  3698.  
  3699.  
  3700.                            - 57 -
  3701.  
  3702.  
  3703. For example, suppose that we wish to establish a  netrom  connec-
  3704. tion with sm0rgv-2, through the netrom node #sth67. Then the con-
  3705. nection route and connection command portion of the record  would
  3706. look like:
  3707.  
  3708. netrom #sth67
  3709.  .c sm0rgv-2     [ Please note that the full stop would be placed at
  3710.                    the beginning of the line; I have placed it here
  3711.                    indented by one column simply so that gateways
  3712.                    which handle this message do not complain at
  3713.                    having a line beginning with a full stop; this
  3714.                    convention is followed throughout this documentation]
  3715.  
  3716. If the station is reached through  digipeating,  then  the  digi-
  3717. peater  callsigns  should be in the ax25 route to the destination
  3718. callsign.  That is, if you wish  to  forward  traffic  to  w0ljf,
  3719. using k2na as a digipeater, then you should have the line:
  3720.  
  3721. ax25 route add w0ljf k2na
  3722.  
  3723. in your autoexec file.
  3724.  
  3725.  
  3726. 10.7.  List of areas to be forwarded
  3727.  
  3728. This is a list, one per  line,  of  entries  in  the  /spool/mail
  3729. directory  which will be forwarded to the remote BBS. An entry of
  3730. the form:
  3731.  
  3732. callsign
  3733.  
  3734. will cause the file /spool/mail/callsign.txt to  be  scanned  for
  3735. unread messages. Any such messages are sent to the remote BBS and
  3736. deleted from the file.
  3737.  
  3738. One can also forward user areas using this mechanism. To do this,
  3739. simply  place  a  line  containing  the  name  of the area in the
  3740. record. So, to forward amsat bulletins to the BBS, one would have
  3741. a line:
  3742.  
  3743. amsat
  3744.  
  3745. This will search the  /spool/mail/amsat.txt  file;  any  messages
  3746. contained  therein  which  have  not been forwarded to the BBS in
  3747. question will be forwarded. They will NOT be deleted. The  deter-
  3748. mining factor as to whether or not entries are deleted is that if
  3749. the filename is present in the /spool/areas file, then  there  is
  3750. NO deletion, otherwise there is.
  3751.  
  3752. Please note that ONLY FILES IN /spool/mail are checked.  In  par-
  3753. ticular, the outbound SMTP mail queue is NOT checked.
  3754.  
  3755.  
  3756.  
  3757.  
  3758.  
  3759.  
  3760.                         June 7, 1991
  3761.  
  3762.  
  3763.  
  3764.  
  3765.  
  3766.                            - 58 -
  3767.  
  3768.  
  3769. 10.8.  Changing the recipient address
  3770.  
  3771. Normally, NOS uses the information in  the  To:  header  line  to
  3772. determine  the parameters used by the "S" command during BBS for-
  3773. warding. As the  To:  header  is  unchanged  by  all  /alias  and
  3774. /spool/rewrite  machinations,  the  mail  will be sent to the BBS
  3775. addressed precisely as the originator of the  message  typed  it.
  3776. Occasionally,  one  might  want to change this behaviour. In this
  3777. case, a line of the form:
  3778.  
  3779. area  new_address
  3780.  
  3781. in the list of areas to be forwarded will replace the  originally
  3782. typed destination with the string new_address instead.
  3783.  
  3784. 11.  /alias
  3785.  
  3786. The alias file is used to map LOCAL names to other  names,  which
  3787. may  be either local or remote; additionally, from a single input
  3788. message, the alias file permits one to  produce  multiple  output
  3789. messages.  Thus, typical uses for the /alias file are: converting
  3790. one local name to another, converting a local name  to  a  remote
  3791. name,  and  exploding  a  mail message so that it is passed on to
  3792. several recipients.
  3793.  
  3794. The format of a record in the alias file is very simple:
  3795.  
  3796. aliasname       recipient1 recipient2 recipient3
  3797. <tab> or <SP>   recipient4 ... recipientN
  3798.  
  3799.  
  3800. There is no separation between records in the /alias  file  other
  3801. than a newline.
  3802.  
  3803. The aliasname is a local username; that is, it does  not  contain
  3804. an  "@" symbol. When the alias file is processed, if the destina-
  3805. tion of the message matches precisely  the  aliasname,  then  the
  3806. mail is redirected to ALL of the alieased recipients.
  3807.  
  3808. Scanning of the /alias file is performed by the SMTP server.  The
  3809. SMTP  timer  (which  controls the SMTP client) is kicked whenever
  3810. the mailbox or SMTP server queues something for delivery by SMTP.
  3811. Mail  transport  within  a single NOS system is performed through
  3812. the SMTP client/server mechanism. The result of  these  facts  is
  3813. that  as  soon  as a piece of mail is entered to the mailbox, the
  3814. SMTP client is kicked and attempts to deliver the mail (which has
  3815. already  been  scanned  by the rewrite mechanism - see below). If
  3816. the mail is local to the NOS system (i.e.  no  "@"  sign  in  the
  3817. address),  then the /alias file will be scanned and the name map-
  3818. pings take place.
  3819.  
  3820. A few lines in the /alias file might look something like:
  3821.  
  3822. bdale   bdale@n3eua
  3823.  
  3824.  
  3825.  
  3826.                         June 7, 1991
  3827.  
  3828.  
  3829.  
  3830.  
  3831.  
  3832.                            - 59 -
  3833.  
  3834.  
  3835. local   fred@k0yum bdale@n3eua bill@ai0c.co.usa.na
  3836.         n5op@n5op jim@k0jtz n0esg@n0esg
  3837. g4bki   g4bki@gb7bil._2712.gbr.eu
  3838.  
  3839.  
  3840. The system must know how to deliver traffic to each of the  indi-
  3841. vidual  addresses  in  the style in which they are entered in the
  3842. /alias file.  If the system does not know how to deliver  one  of
  3843. the  new addresses, then it will send it to the SMTP gateway sta-
  3844. tion defined by the 'smtp gateway' command.
  3845.  
  3846. Note that it is reasonable, and  sometimes  desireable,  to  have
  3847. alias records of the form:
  3848.  
  3849. area    area dest1 dest2 ...
  3850.  
  3851. As the /alias file is scanned only once (see  below),  this  does
  3852. not result in an infinite recursion.
  3853.  
  3854. 12.  /spool/rewrite
  3855.  
  3856.  
  3857. The rewrite file is used to perform a one-to-one mapping  between
  3858. destination   addresses   as  received  by  NOS  and  destination
  3859. addresses as actually used by NOS. Each record within the rewrite
  3860. file  comprises  a  single  line,  containing either two or three
  3861. entries separated by spaces. The  first  field  is  the  template
  3862. field;  if  a  destination  address  matches  the template, it is
  3863. replaced by the second field. The third field, which is optional,
  3864. is  the single letter "r", which, if present, tells NOS to rescan
  3865. the rewrite file, using the new destination address to attempt to
  3866. match against the templates.
  3867.  
  3868. A template may contain asterisks. These stand for a match of  any
  3869. number  of  characters (including zero). In the second field, the
  3870. character "$", followed by a single digit in the range  1  to  9,
  3871. represents the string that matched the respective asterisk in the
  3872. template. By way of example, suppose that there is a line in  the
  3873. rewrite file which looks like:
  3874.  
  3875. *@* $1%$2@g1emm.ampr.org
  3876.  
  3877. Then, any traffic reaching the system through the mailbox or  the
  3878. SMTP server, but which is supposed to go to a remote system, will
  3879. be redirected to go through g1emm.ampr.org. Suppose that  a  user
  3880. logs on, and sends a message to n0gbe@nq0i. Then the rewrite file
  3881. attempts to match "n0gbe@nq0i" against the entry *@*. It matches,
  3882. and  assignes $1 the value n0gbe, and $2 the value nq0i. The mail
  3883. file as written to the disk will no longer be to n0gbe@nq0i, but,
  3884. rather,    to    n0gbe%nq0i@g1emm.ampr.org.   [The   nomenclature
  3885. station1%station2@station3  means  the   final   destination   is
  3886. station1@station2,  and  this traffic is to be routed through the
  3887. gateway station3.]
  3888.  
  3889.  
  3890.  
  3891.  
  3892.                         June 7, 1991
  3893.  
  3894.  
  3895.  
  3896.  
  3897.  
  3898.                            - 60 -
  3899.  
  3900.  
  3901. As soon as a template match is found, the conversion is performed
  3902. and  scanning  is stopped, unless the third "r" field is present,
  3903. in which case scanning restarts from the top of the file.
  3904.  
  3905. N.B. It is a good idea to have a line of the form:
  3906.  
  3907. *@*.ampr.org $1@$2.ampr.org
  3908.  
  3909. at the beginning of  your  rewrite  file.  This  will  cause  all
  3910. amprnet  traffic  to  be caught early in the rewrite scan, and no
  3911. further scanning (and, hence, no unexpected  substitutions)  will
  3912. take place.
  3913.  
  3914. 12.1.  Scanning procedure
  3915.  
  3916. The two files which are used  to  determine  the  disposition  of
  3917. traffic  are scanned under slightly different circumstances. Note
  3918. that neither the /alias nor the  /spool/rewrite  scan  makes  any
  3919. actual changes to the contents of the traffic. In particular, the
  3920. To: field remains exactly as it was first entered into  the  sys-
  3921. tem.
  3922.  
  3923. There are four possible entry routes for traffic into the system:
  3924. SMTP,  through  the  mailbox  by a user, through the mailbox by a
  3925. BBS, and via an external program (like BM)  or  creation  of  the
  3926. files manually.  NOS determines if a piece of traffic was entered
  3927. into the system by a BBS by looking for a BBS system ID (like the
  3928. "[NET-H$]"  block issued by NOS) on the incoming connection prior
  3929. to messages being uploaded.
  3930.  
  3931. 12.2.  Traffic received by SMTP server
  3932.  
  3933. 1. The rewrite file is scanned and any  changes  applied  (unless
  3934. the traffic was recieved through the local mailbox; in that case,
  3935. this step does not occur);
  3936. 2. If the traffic appears to be local  then  the  alias  file  is
  3937. scanned and any changes or explosions applied.
  3938. 3. Any copies local to  the  system  are  delivered;  copies  for
  3939. remote delivery are placed in the SMTP queue.
  3940.  
  3941. 12.3.  Traffic received by mailbox from user
  3942.  
  3943. 1. The rewrite file is scanned and any changes applied;
  3944. 2. The traffic is passed to the SMTP client.
  3945.  
  3946. 12.4.  Traffic received by mailbox from BBS
  3947.  
  3948. 1. The rewrite file is scanned and any changes applied;
  3949. 2. The traffic is passed to the SMTP client.
  3950.  
  3951. 12.5.  Traffic entered by external mechanism
  3952.  
  3953. 1. No scanning occurs;
  3954. 2. The traffic is passed to the SMTP client.
  3955.  
  3956.  
  3957.  
  3958.                         June 7, 1991
  3959.  
  3960.  
  3961.  
  3962.  
  3963.  
  3964.                            - 61 -
  3965.  
  3966.  
  3967. 12.6.  Headers
  3968.  
  3969. Appropriate RFC-822 headers are added to  all  incoming  traffic.
  3970. Traffic  entering  through the mailbox recieves a full complement
  3971. of RFC-822 headers; traffic coming through the  SMTP  server  has
  3972. only  a "Received:" header applied. On forwarding to a BBS, if an
  3973. item of traffic contains BBS R: headers, the  RFC-822  header  is
  3974. converted to an appropriate R: line at the time that NOS forwards
  3975. the message. (This change only occurs for  BBS  forwarding;  for-
  3976. warding by SMTP retains the RFC-822 headers.)
  3977.  
  3978. 12.7.  Bulletin Identifiers (BIDs)
  3979.  
  3980. The AX.25 BBS system has evolved a reasonably  efficient  way  of
  3981. reducing  overhead  when forwarding bulletins. When a bulletin is
  3982. originated on a BBS, it is given  a  unique  bulletin  identifier
  3983. (BID).  This BID should (theoretically) travel with the bulletin,
  3984. and should never be changed during the distribution of  the  bul-
  3985. letin.  Each  system  keeps track of all received BIDs. If a for-
  3986. warding station wishes to forward a bulletin to a BBS,  then  the
  3987. receiving station checks its local list of known BIDs and informs
  3988. the transmitting station if it already posesses the  bulletin  in
  3989. question.  The  NOS  mailbox  conforms to this protocol. Received
  3990. BIDs are stored in the file /spool/history, and  are  encoded  in
  3991. the Message-ID: header line of the message by NOS.  Messages for-
  3992. warded from areas listed in the /areas file will have  their  BID
  3993. (re)generated  from  the Message-ID: line. Note that ALL messages
  3994. from public areas are forwarded with a BID, whether  or  not  the
  3995. message was produced with the "SB" command. Like other BBSes, NOS
  3996. will inform a transmitting station not to transmit a bulletin  if
  3997. it  is one that NOS already has locally; likewise, it understands
  3998. similar messages from other stations to which it  tries  to  for-
  3999. ward.
  4000.  
  4001. Note that the BID mechanism is not a part of the SMTP  world.  If
  4002. you  are forwarding bulletins through SMTP, there is no mechanism
  4003. by which the receiving station can reject the attempted  delivery
  4004. of a bulletin, even if it already exists on the recipient system.
  4005. (Note that a possible  workaround  is  to  deliver  bulletins  to
  4006. TCP/IP  stations  using  TCP  instead of SMTP. Alternatively, one
  4007. could use NNTP, as NNTP commands utilise  the  Message-ID:  line,
  4008. from  which  the  BID is derived.) The BID is preserved no matter
  4009. which mechanism is used to deliver the bulletin.
  4010.  
  4011.  
  4012. 12.8.  Traffic in practice
  4013.  
  4014. Now, the big question is, how does one set up these various files
  4015. to perform intelligent manipulation of mail? A number of examples
  4016. follow.  Note that, often, there is more than one way  to  accom-
  4017. plish  an  objective.  The following are merely examples (and not
  4018. necessarily the most efficient  method  possible  for  any  given
  4019. case). The format used will be:
  4020.  
  4021.  
  4022.  
  4023.  
  4024.                         June 7, 1991
  4025.  
  4026.  
  4027.  
  4028.  
  4029.  
  4030.                            - 62 -
  4031.  
  4032.  
  4033. typed destination -> intended destination
  4034.  
  4035. followed by the necessary entries in the alias (/alias),  rewrite
  4036. (/spool/rewrite) and forwarding (/spool/forward.bbs) files.
  4037.  
  4038.  
  4039. 12.9.  Using familiar names - SMTP destination
  4040.  
  4041. bdale -> bdale@n3eua.ampr.org
  4042.  
  4043. alias:
  4044. bdale   bdale@n3eua.ampr.org
  4045.  
  4046. rewrite:
  4047. forward:
  4048.  
  4049.  
  4050. 12.10.  Exploding local mail
  4051.  
  4052. sysops -> nq0i, n5op@n5op.ampr.org
  4053.  
  4054. alias:
  4055. sysops  nq0i n5op@n5op@ampr.org
  4056.  
  4057. rewrite:
  4058. forward:
  4059.  
  4060.  
  4061. 12.11.  Using familiar names - BBS forwarding
  4062.  
  4063. g4bki -> g4bki@gb7bil._2712.gbr.eu, to be forwarded by ai0c
  4064.  
  4065. alias:
  4066. rewrite:
  4067. forward:
  4068. ai0c
  4069. ax25 ax1 ai0c
  4070. g4bki g4bki@gb7bil._2712.gbr.eu
  4071. ai0c
  4072.  
  4073.  
  4074. 12.12.  Handling incoming bulletins by subject
  4075.  
  4076. tcpip@* -> nq0i, tcpip, bdale@n3eua.ampr.org, ai0c@ai0c [a BBS]
  4077.  
  4078. alias:
  4079. tcpip   nq0i tcpip bdale@n3eua.ampr.org ai0c
  4080.  
  4081. rewrite:
  4082. tcpip@* tcpip
  4083.  
  4084. forward:
  4085. ai0c
  4086. ax25 ai0c
  4087.  
  4088.  
  4089.  
  4090.                         June 7, 1991
  4091.  
  4092.  
  4093.  
  4094.  
  4095.  
  4096.                            - 63 -
  4097.  
  4098.  
  4099. ai0c
  4100.  
  4101. Let's walk through the above example. An incoming item  comes  in
  4102. addressed  to  TCPIP@ALLUS.  A  scan  is made through the rewrite
  4103. file, and a match is found. The item is redirected to tcpip.  The
  4104. alias  file  is scanned; a total of four copies of the item exist
  4105. after this, three in local areas tcpip, nq0i and ai0c, and one on
  4106. the SMTP queue (for bdale@n3eua.ampr.org). When the mailbox timer
  4107. next ticks, the mail in the local ai0c area will be forwarded  on
  4108. the ax1 interface to ai0c.
  4109.  
  4110.  
  4111. 12.13.  Routing based on Hierarchical addressing
  4112.  
  4113.  
  4114. Wyoming -> KE7VS (SMTP)
  4115. Nebraska -> AG0N (BBS over the NETROM, NETROM ID WNBBS)
  4116. Europe -> W0LJF (BBS over AX.25)
  4117.  
  4118. alias:
  4119. rewrite:
  4120. *.noam            $1.na r
  4121. *.us              $1.usa.na r
  4122. *.usa             $1.usa.na r
  4123.  
  4124. *.ne              $1.ne.usa.na r
  4125. *.wy              $1.wy.usa.na r
  4126.  
  4127. *@*.*.wy.usa.na   $1%$2.$3.wy.usa.na@ke7vs
  4128. *@*.wy.usa.na     $1%$2.wy.usa.na@ke7vs
  4129.  
  4130. *.ne.usa.na     ag0n
  4131.  
  4132. *.eu            w0ljf
  4133.  
  4134. forward:
  4135. ag0n
  4136. netrom ax0 wnbbs
  4137. ag0n
  4138. ----------
  4139. w0ljf
  4140. ax25 ax1 w0ljf
  4141. w0ljf
  4142. ----------
  4143.  
  4144. Why is the example rewrite file apparently so  complicated?  This
  4145. is  to handle poorly constructed hierarchical addresses in a rea-
  4146. sonable way.  A full U.S.  hierarchical  address  has  the  form:
  4147. callsign@BBS.#localid.state.usa.na.  Many states have no #localid
  4148. field. In the example rewrite file above, the first  three  lines
  4149. convert  non-standard,  but  frequently used, U.S. designators to
  4150. the more standard format. It is common for users  not  to  use  a
  4151. full hierarchical address if the destination is relatively local.
  4152. For eample, a user might easily use only .wy instead of the  full
  4153.  
  4154.  
  4155.  
  4156.                         June 7, 1991
  4157.  
  4158.  
  4159.  
  4160.  
  4161.  
  4162.                            - 64 -
  4163.  
  4164.  
  4165. grouping  of two lines handles this problem. Note the third, "r",
  4166. field in all the entries so far.
  4167.  
  4168. The remainder of the file handles properly formatted hierarchical
  4169. addresses.  The  two  Wyoming  entries  handle the cases with and
  4170. without a #localid field. Differentiation between these cases  is
  4171. not necessary for BBS forwarding.
  4172.  
  4173. 12.14.  General bulletin handling
  4174.  
  4175. The details of bulletin handling will vary somewhat from place to
  4176. place,  as there are several distinct styles of bulletin handling
  4177. currently in use in the AX.25 BBS world. In general, it is neces-
  4178. sary  to  arrange  one's system so that it accepts bulletins from
  4179. BBSes, forwards them to one or more stations,  and  also  handles
  4180. intelligently bulletins input by users into NOS.
  4181.  
  4182. Suppose that we sish to handle bulletins @JUNK. We are to deposit
  4183. them  locally in the junk area, and also forward to BBS g4bki. We
  4184. also know that we generally receive @JUNK bulletins from g4amj, a
  4185. local BBS which handles much bulletin traffic.
  4186. alias:
  4187. rewrite:
  4188. *@junk   junk
  4189.  
  4190. forward:
  4191. g4bki
  4192. ax25 ax1 g4bki
  4193. g4bki
  4194. junk
  4195. ----------
  4196. g4amj
  4197. ax25 ax1 g4amj
  4198. g4amj
  4199. junk
  4200. ----------
  4201.  
  4202. All incoming @JUNK traffic is written to  the  junk  area  (which
  4203. should  be an explicit entry in the /spool/areas file). Each tick
  4204. of the mailbox timer, NOS scans the junk  area  for  traffic  not
  4205. forwarded  to  g4bki or g4amj and attempts to deliver unforwarded
  4206. bulletins. Usually, g4amj will respond with a "Have  it"  message
  4207. and the bulletin will not be forwarded. Any bulletins @JUNK depo-
  4208. sited locally by users will automatically be sent to  both  g4bki
  4209. and g4amj.
  4210.  
  4211. 13.  Questions and Answers
  4212.  
  4213. Q. Under what circumstances does NOS request  reverse  forwarding
  4214. from a BBS?
  4215.  
  4216. A. NOS requests a reverse forward after completing  any  forwards
  4217. of  its own to the BBS. If no traffic was queued for a given BBS,
  4218. then no connection is attempted, so no reverse forward request is
  4219.  
  4220.  
  4221.  
  4222.                         June 7, 1991
  4223.  
  4224.  
  4225.  
  4226.  
  4227.  
  4228.                            - 65 -
  4229.  
  4230.  
  4231. issued.
  4232.  
  4233. Q. What kinds of message types does the NOS mbox support?
  4234.  
  4235. A. Basically, NOS supports all two letter commands starting  with
  4236. an  "S".  If  the  mailbox  has  not  received an SID banner (the
  4237. "[NET-H$]") from a connected station, then  an  SF  command  will
  4238. send a followup to the address specified on the command line. The
  4239. SR command will send a reply to the current message. One can also
  4240. issue  the command "SR <number>", where <number> is the number of
  4241. the message to which you want to  generate  a  reply.  All  other
  4242. variations  cause  an  X-BBS-Msg-Type:  header to be added to the
  4243. message. When a message with such a line is forwarded to  a  BBS,
  4244. it  is  sent  to the BBS with the appropriate message type as the
  4245. second letter in the "S" command to the BBS.
  4246.  
  4247. If NOS has received a valid SID, then ALL S commands are  handled
  4248. by the X-BBS-Msg-Type: mechanism outlined above.
  4249.  
  4250.  
  4251.  
  4252.  
  4253.  
  4254.  
  4255.  
  4256.  
  4257.  
  4258.  
  4259.  
  4260.  
  4261.  
  4262.  
  4263.  
  4264.  
  4265.  
  4266.  
  4267.  
  4268.  
  4269.  
  4270.  
  4271.  
  4272.  
  4273.  
  4274.  
  4275.  
  4276.  
  4277.  
  4278.  
  4279.  
  4280.  
  4281.  
  4282.  
  4283.  
  4284.  
  4285.  
  4286.  
  4287.  
  4288.                         June 7, 1991
  4289.  
  4290.  
  4291.  
  4292.  
  4293.  
  4294.                            - 66 -
  4295.  
  4296.  
  4297. 14.  Logic map of the mailbox
  4298.  
  4299.  
  4300. ============== AX.25 === NET/ROM === Ethernet === Loopback =================
  4301.        |                   |                   |                   |
  4302.        |                   |                   |                   |
  4303. +--------------+    +--------------+    +--------------+    +--------------+
  4304. |              |    |              |    |              |    |              |
  4305. |   Mailbox    |    | SMTP client  |    | SMTP server  |    | BBS Forward  |
  4306. |              |    |              |    |              |    |              |
  4307. +--------------+    +--------------+    +--------------+    +--------------+
  4308.        |                   ^                   |                   ^
  4309.        |                   |                   |                   |
  4310.        v                   |                   v                   |
  4311. +--------------+    +--------------+    +--------------+    +--------------+
  4312. |              |    |              |    |              |    |              |
  4313. | Add RFC822   |    | Use MX or A  |    | Add Received |    | Add own R:   |
  4314. | header suite |    | type records |    | line         |  +>| line         |
  4315. |              |    |              |    |              |  | |              |
  4316. +--------------+    +--------------+    +--------------+  | +--------------+
  4317.        |                   ^                   |          |        ^
  4318.        |                   |                   |          |        |
  4319.        v                   |                   v          |        |
  4320. +--------------+    +--------------+    +--------------+  | +--------------+
  4321. |              |    |              |    |              |  | |              |
  4322. | Get Rewrite  |    | Use optional |    | Apply Rewrite|  | | Strip RFC822 |
  4323. | file address |    | SMTP gateway |    | file address |  | | header suite |
  4324. |              |    |              |    |              |  | |              |
  4325. +--------------+    +--------------+    +--------------+  | +--------------+
  4326.        |                   ^                   |          |        ^
  4327.        |                   |                   |          |        | Yes
  4328.        v                   |                   v          |        |
  4329. +--------------+           |            +--------------+  | +--------------+
  4330. |              |   No      |            |              |  | |              |
  4331. | Local addr?  |-------+   |            | Alias file   |  +-| Any R: lines?|
  4332. |              |       |   |            |              | No |              |
  4333. +--------------+       |   |            +--------------+    +--------------+
  4334.        |               |   |                |  |  |                ^
  4335.        | Yes           |   |                |  |  |                |
  4336.        v               |   |                v  v  v                |
  4337. +--------------+       v   |            +--------------+    +--------------+
  4338. |              |    +--------------+    |              |    |              |
  4339. | Apply Rewrite|    |              | No | Local        |Yes | /spool/mail/ |
  4340. | file address |--->| SMTP queue   |<---| address?     |--->| directory    |
  4341. |              |    |              |    |              |    |              |
  4342. +--------------+    +--------------+    +--------------+    +--------------+
  4343.  
  4344. 15.  Credits
  4345.  
  4346. Several people have contributed to this manual. I would  particu-
  4347. larly  like  to thank Bill Simpson and Michael Westerhof, KA9WSB,
  4348. for their significant editorial contributions to  this  document.
  4349. Deborah  Swanberg  wrote  the original BOOTP documentation,.  and
  4350. G4AMJ/NQ0I and SM0RGV contributed the section on mail forwarding.
  4351.  
  4352.  
  4353.  
  4354.                         June 7, 1991
  4355.  
  4356.  
  4357.  
  4358.  
  4359.  
  4360.                            - 67 -
  4361.  
  4362.  
  4363. Although I am the primary author of this software  package,  many
  4364. others  have  contributed  substantial additions and refinements.
  4365. Here is a partial list; additions and  corrections  are  welcome.
  4366. See  the  individual  source code files for additional authorship
  4367. details.
  4368.  
  4369. 15.1.  ARCNET
  4370.  
  4371. Written by Russ Nelson of Clarkson University.
  4372.  
  4373. 15.2.  Autodialer
  4374.  
  4375. Bill  Simpson  substantially  rewrote  my  original  version  and
  4376. created a much improved control file format.
  4377.  
  4378. 15.3.  Bootstrap Protocol (BOOTP)
  4379.  
  4380. Written by Deborah Swanberg of the University of Michigan.
  4381.  
  4382. 15.4.  Domain resolver
  4383.  
  4384. Bill Simpson substantially extended my original  version,  adding
  4385. record caching and automatic expiration.
  4386.  
  4387. 15.5.  DRSI driver
  4388.  
  4389. Written by Stu Phillips, N6TTO.
  4390.  
  4391. 15.6.  Eagle 8530 board driver
  4392.  
  4393. Written by Art Goldman, WA3CVG, and Richard Bisbey, NG6Q.
  4394.  
  4395. 15.7.  HAPN 8273 HDLC board driver
  4396.  
  4397. Written by Jon Bloom, KE3Z, with fixes by John Tanner, VK2ZXQ.
  4398.  
  4399. 15.8.  Hop Check utility
  4400.  
  4401. Written by Katie Stevens of UC Davis; enhancements by Bill  Simp-
  4402. son.
  4403.  
  4404. 15.9.  Mailbox server & SMTP
  4405.  
  4406. My original,  primitive  SMTP  server  was  vastly  enhanced  and
  4407. expanded  by  Bdale  Garbee,  N3EUA and Dave Trulli, NN2Z. Anders
  4408. Klemets, SM0RGV,  wrote  the  first  "mailbox"  specifically  for
  4409. AX.25;  he then expanded it into a full-blown bulletin board sys-
  4410. tem and integrated it with the SMTP facilities.
  4411.  
  4412. 15.10.  NET/ROM
  4413.  
  4414. The original NET/ROM code was done by Dan  Frank,  W9NK.  It  was
  4415. ported to the NOS platform by Anders Klemets, SM0RGV.
  4416.  
  4417.  
  4418.  
  4419.  
  4420.                         June 7, 1991
  4421.  
  4422.  
  4423.  
  4424.  
  4425.  
  4426.                            - 68 -
  4427.  
  4428.  
  4429. 15.11.  Netnews Transfer Protocol (NNTP)
  4430.  
  4431. Written by Anders Klements, SM0RGV, with help from  Bernie  Roehl
  4432. and Gerard Van Der Grinten, PA0GRI.
  4433.  
  4434. 15.12.  Packet Drivers
  4435.  
  4436. Although not really part of this  package,  the  Clarkson  Packet
  4437. Driver Collection by Russ Nelson of Clarkson University has enor-
  4438. mously enhanced the utility of this package by allowing it to use
  4439. virtually every PC Ethernet controller board on the market.
  4440.  
  4441. 15.13.  PI 8530 DMA HDLC driver
  4442.  
  4443. Written by Dave Perry, VE3IFB.
  4444.  
  4445. 15.14.  Post Office Protocol (POP)
  4446.  
  4447. Originally authored by Mike Stockett, WA7DYX. Updates and modifi-
  4448. cations  by  Allen  Gwinn, N5CKP, Gerard Van Der Grinten, PA0GRI,
  4449. and Mark Edwards, WA6SMN.
  4450.  
  4451. 15.15.  Point to Point Protocol (PPP)
  4452.  
  4453. Written by Katie Stevens of  UC  Davis,  based  on  the  original
  4454. implementation  by  Drew  Perkins of CMU. Updated by Bill Simpson
  4455. and Glenn McGregor of the University of Michigan.
  4456.  
  4457. 15.16.  Routing Information Protocol (RIP)
  4458.  
  4459. Original (pre-NOS) version written by Al Broscious N3FCT.
  4460.  
  4461. 15.17.  SCC - Generic 8530 driver
  4462.  
  4463. Originally written for the old "NET" code by Rob Janssen, PE1CHL.
  4464. Ported to NOS by Ken Mitchum, KY3B.
  4465.  
  4466. 15.18.  Socket-level stream compression
  4467.  
  4468. Written by Anders Klemets, SM0RGV
  4469.  
  4470. 15.19.  TCP/IP Header Compression
  4471.  
  4472. Adapted from Van Jacobson's original BSD UNIX  implementation  by
  4473. Katie Stevens of UC Davis. Updated by Bill Simpson.
  4474.  
  4475.  
  4476.  
  4477.  
  4478.  
  4479.  
  4480.  
  4481.  
  4482.  
  4483.  
  4484.  
  4485.  
  4486.                         June 7, 1991
  4487.  
  4488.  
  4489.